在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
}
}
答案 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);
}