访问jQuery自定义对象函数和属性

时间:2011-09-03 06:33:20

标签: jquery function object properties

说我像这样创建一个对象:

$.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()。

2 个答案:

答案 0 :(得分: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');
});

答案 1 :(得分:1)

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