簡體   English   中英

面向對象js的結構

[英]structure of object oriented js

我是面向對象 js 的新手。 在我的工作中,我必須編輯一些其他人以前完成的代碼。 因為我是這個領域的新手,無法理解一些結構和符號。 波紋管我無法處理的結構,

(function ($) {
    AjaxSolr.GenericGraphWidget = AjaxSolr.AbstractFacetWidget.extend({

      _functionName:function(){
       }

   })(jQuery);

現在這里AjaxSolr是一個在另一個文件中定義的基類。 AbstractFacetWidget也是一個類,它也是從AjaxSolr擴展而來的。 現在有人可以解釋一下,這是一種什么樣的結構?(是的,我只明白這是一種類,就像其他 oop 語言一樣,是從另一個類擴展而來的)。 什么(function ($)是什么意思?

直到現在我才知道要創建對象和繼承,我必須像以下那樣做-

var Constructor = function(name) {
    this.name = name
};

Constructor.prototype.mymethod = function() {
    alert("my name is : " + this.name);
};

var obj = new Constructor("foo");
obj.mymethod();

可能他們使用了我不知道的另一種格式。 如果,我想從該類的外部調用該類的函數,我該怎么做? 如果我的問題沒有解釋清楚,請問我。

通常, .extend({...})意思是“獲取他們的原型並合並提供的對象”。 所以extend創建了一個新對象並設置為AjaxSolr.GenericGraphWidget 這樣,您可以執行類似於其他 OOP 語言中常見的繼承的操作。

我猜你刪除了一些部分,所以我希望以下內容適用於你的具體例子: (function ($) { ... })(jQuery); 是一種編寫立即調用的函數表達式的方法:它創建一個匿名函數( function ($) { ... have $ available here ... } )並使用一些參數(在本例中為jQuery )直接調用它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM