来自init的javascript原型访问选项 - 是否可能?

时间:2013-01-02 19:29:43

标签: jquery plugins

在javascript原型中,方法是否有可能访问其他方法的属性,例如:如何为open方法提供选项?

function Plugin(element, options) {
    Modal = this;
    Modal.options = $.extend({}, defaults, options);
    Modal._defaults = defaults;
    Modal.init(Modal.element, Modal.options);
}


Plugin.prototype = {
    init: function(element, options) {
        console.log(options);
    },
    open: function() {
        //Does this function have access to options?
        //how to modify so that 'open' function has access to options
    }
}

3 个答案:

答案 0 :(得分:1)

在第一种方法中将其存储为this._options。

答案 1 :(得分:1)

没有

但是,您已将它们放在this中,因此您可以撰写this.options

答案 2 :(得分:0)

首先,Modal是一个隐含的全局,我怀疑它不是故意的。使用var将其限制为本地范围。

function Plugin(element, options) {
    var Modal = this;
    Modal.options = $.extend({}, defaults, options);
    Modal._defaults = defaults;
    Modal.init(Modal.element, Modal.options);
}

其次,由于options已被构造函数添加为实例的属性,因此您可以在prototype方法中访问它:

open: function() {
    console.log(options);
}