0

在 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
    }
}
4

3 回答 3

1

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

于 2013-01-02T19:31:12.623 回答
1

不。

但是,您已经将它们放入this,因此您可以编写this.options.

于 2013-01-02T19:31:13.010 回答
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已经被构造函数添加为实例的属性,你可以在原型方法中访问它:

open: function() {
    console.log(options);
}
于 2013-01-02T19:38:19.540 回答