2011-09-03 81 views
2

說我創建一個對象,像這樣:訪問jQuery的自定義對象的功能和屬性

$.myObject = function(parameter){ 
    var defaults = { 
     start: '1' 
    }; 

    options = $.extend(defaults, options); 

    function doSomething(){ 
     console.log('BOO'); 
    } 
} 

如何訪問功能,並從外部訪問屬性?他們似乎是私人的(封閉問題?)。

我是否必須定義外部函數來公開它們? 即

$.myObjectFunction = function doSomething(){ 
    console.log('BOO'); 
} 

爲了從全局作爲.myObjectFunction $()從在Firefox /鉻控制檯調用它。

+0

如何訪問功能** – jeeden

回答

0

Here你可以找到很多的例子來說明如何使用類在JavaScript

function myObject(options) { 
    var defaults = { 
     start: '1' 
    }; 

    options = $.extend(defaults, options); 

    this.doSomething = function() { 
     console.log('BOO'); 
     console.log(options.start); 
    } 
} 

使用工作:

new myObject().doSomething() 
new myObject({start:'100'}).doSomething() 
2

下面是一個例子。

(function ($) { 
    $.myObject = function (options) { 
     var opts = $.extend({}, $.myObject.defaults, options), 
     privateMethod = function (msg) { 
      alert(opts.start + ': ' + msg); 
     }; 

     return { 
      publicMethod: function (msg) { 
       privateMethod(msg); 
      } 
     } 
    }; 
    $.myObject.defaults = { 
     start: '1' 
    }; 

})(jQuery); 

$(function() { 
    $.myObject().publicMethod('One'); 
    $.myObject({'start': '100'}).publicMethod('Two'); 
    $.myObject.defaults.start = '1000'; 
    $.myObject().publicMethod('Three'); 
    $.myObject().privateMethod('Four'); 
});