>我認為查看我使用的JavaScript設計模式可能很有趣。我在一段時間內逐漸解決了它,吸收和適應各種來源的影響,直到達到提供我需要的靈活性的模式。
>讓我向您展示一個概述,然後查看它如何融合:您可以從該示例代碼中看到,總體結構是a
function MyScript(){} (function() { var THIS = this; function defined(x) { return typeof x != 'undefined'; } this.ready = false; this.init = function( { this.ready = true; }; this.doSomething = function() { }; var options = { x : 123, y : 'abc' }; this.define = function(key, value) { if(defined(options[key])) { options[key] = value; } }; }).apply(MyScript);函數字面
:
(function() { ... })();我最初是為了
封裝而開始使用函數文字
- 任何以任何格式的腳本都可以包裹在該外殼中,並有效地將其“密封”到私有範圍中,以防止其與同一範圍中的其他腳本衝突,或在全球範圍中與數據相衝突。結尾處的支架對是執行範圍的方法,就像其他任何功能一樣。function doSomething() { ... } doSomething();>但是,如果使用函數執行範圍,而不是僅僅在全球範圍內調用範圍。 因此,通過將這兩個組合在一起(創建一個命名函數,然後在命名函數範圍中執行函數的執行),我們最終會構成一個可以構成任何腳本的基礎的函數的執行,同時模擬了在對象的類中。
內的美 查看第一個代碼示例,您可以看到封閉範圍的結構提供了什麼靈活性。當然,這是您無能為力的任何功能,但是通過以這種方式將其包裝好,我們擁有一個可以與
>任何名為scope的關聯的構造。 公共數據 。例如,在腳本的頂部:>
>但在共享公共數據的同時,每個數據也可以定義自己的
私有數據
私人功能可用於提供內部實用程序: 然後,我們可以創建>公共方法和屬性,其他實例可訪問,以及外部: 是私人但可以定義的;它的論點可以根據數據的需求進行進一步驗證:
> - 一個易於引用和集成並直接使用的單使用對象!
>你怎麼看?這是您熟悉的模式,還是您想使用的其他東西?
> 如果您想從詹姆斯閱讀更多信息,請訂閱我們的每週技術怪胎新聞通訊, Tech Times。 function MyScript(){}
(function()
{
var THIS = this;
function defined(x)
{
return typeof x != 'undefined';
}
this.ready = false;
this.init = function(
{
this.ready = true;
};
this.doSomething = function()
{
};
var options = {
x : 123,
y : 'abc'
};
this.define = function(key, value)
{
if(defined(options[key]))
{
options[key] = value;
}
};
}).apply(MyScript);
(function()
{
...
})();
我們還可以通過公共定義方法來創建function doSomething()
{
...
}
doSomething();
>所有這些功能都是使構造對我如此有用的原因。所有這些都包裹在整潔的,自我執行的
singleton
以上是我最喜歡的JavaScript設計模式的詳細內容。更多資訊請關注PHP中文網其他相關文章!