Javascript 从插件内部的函数访问jquery ui插件变量?
我有一个标签插件,我正在重新分解 我每次都会传递一个我构造的对象,因此,我现在有了一个传递值并返回对象的函数。这很好,除了现在我需要访问插件中的一个变量 如果你看看底部,你会看到里面的Javascript 从插件内部的函数访问jquery ui插件变量?,javascript,jquery,jquery-ui,Javascript,Jquery,Jquery Ui,我有一个标签插件,我正在重新分解 我每次都会传递一个我构造的对象,因此,我现在有了一个传递值并返回对象的函数。这很好,除了现在我需要访问插件中的一个变量 如果你看看底部,你会看到里面的\u addTag我调用了this.tag,我想在标记数组中存储元素的数量,但是我调用this并没有调用小部件 (function ($) { $.widget("ui.tagit", { // default options options:{}, //
\u addTag
我调用了this.tag
,我想在标记数组中存储元素的数量,但是我调用this
并没有调用小部件
(function ($) {
$.widget("ui.tagit", {
// default options
options:{},
//initialization function
_create:function () {
var self = this;
this.tagsArray = [];
...
...
this._addTag('label', 'value');
}
},
_addTag:function (label, value) {
...
//THIS IS WHERE THE TAG OBJECT IS CREATED
var tag = new this.tag(label, (value === undefined ? label : value));
tag.element = $('<li class="tagit-choice"'
+ (value !== undefined ? ' tagValue="' + value + '"' : '')
+ '>' + label + '<a class="tagit-close">x</a></li>');
...
},
tag: function (label, value, element) {
var self = this;
return {
label:label,
value:value,
element:element,
index: self.tagsArray.length
}
}
});
})(jQuery);
在JavaScript中使用new
关键字调用函数,并将其上下文(this
)设置为新创建的对象
在标记
函数中的示例中,您希望将此
设置为您正在使用的小部件对象,但由于使用了新建
关键字,它将被设置为新创建的对象。因此,它将在self.tagsArray.length
上失败,因为新创建的对象没有tagsArray
属性
有关new
关键字`的更多信息,我建议阅读有关它的MDN文章-。好的,找到了我的问题,这是使用new
关键字。所以我的下一个问题是。新的
关键字有什么区别?
$.widget.tag
__proto__: Object
constructor: function (label, value, element) {
__proto__: Object