2011-09-03 109 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'); 
});