【问题标题】:Accessing jQuery custom object functions and properties访问 jQuery 自定义对象函数和属性
【发布时间】:2011-11-09 15:09:44
【问题描述】:

假设我这样创建一个对象:

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

    options = $.extend(defaults, options);

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

如何从外部访问该功能和访问属性?它们似乎是私有的(关闭问题?)。

我是否必须在外部定义函数才能将它们公开? 即

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

为了在 firefox/chrome 的控制台中以 $.myObjectFunction() 的形式从全局调用它。

【问题讨论】:

  • 如何访问该功能**

标签: jquery function object properties


【解决方案1】:

这是一个例子。

(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');
});

【讨论】:

    【解决方案2】:

    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()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-16
      • 1970-01-01
      • 1970-01-01
      • 2015-09-22
      • 1970-01-01
      相关资源
      最近更新 更多