首頁 > web前端 > js教程 > 我最喜歡的JavaScript設計模式

我最喜歡的JavaScript設計模式

Christopher Nolan
發布: 2025-03-09 00:30:12
原創
593 人瀏覽過

My Favorite JavaScript Design Pattern

我最喜歡的JavaScript設計模式

>我認為查看我使用的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的

關聯的構造。 我們可以創建多個這樣的構造,並將它們與相同的範圍相關聯,然後所有這些都將彼此共享他們的

公共數據

>但在共享公共數據的同時,每個數據也可以定義自己的

私有數據

。例如,在腳本的頂部:>

>我們創建了一個指向函數範圍的private variable ,可以在私人函數中使用它來引用它 - 與“ self = this”創建內置範圍的參考。 其他私人變量以相同的方式聲明,如果它們定義恆定數據,則可以共享大寫慣例(但是,應避免使用const而不是var的聲明,因為它沒有得到很好的支持)。 >

私人功能可用於提供內部實用程序:>

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

> - 一個易於引用和集成並直接使用的單使用對象! >你怎麼看?這是您熟悉的模式,還是您想使用的其他東西? >

縮略圖:Superkimbo

注意:想要更多嗎?

如果您想從詹姆斯閱讀更多信息,請訂閱我們的每週技術怪胎新聞通訊, Tech Times

以上是我最喜歡的JavaScript設計模式的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板