Javascript 如何使用';这';在一个简单的jquery函数中工作?
我无法理解此代码:Javascript 如何使用';这';在一个简单的jquery函数中工作?,javascript,jquery,jquery-plugins,Javascript,Jquery,Jquery Plugins,我无法理解此代码: $.functionone = function(){ function setOptions(newOptions){ ... } this.setOptions = setOptions; } 在“this.setOptions”中添加“this”的目的是什么?我知道它引用了函数setOptions,但是在那里添加“this”会使函数被调用吗?我知道这是指DOM元素,但是在这个特定场景中使用它有什么意义呢。谢谢。代码创建了一个函数,并将其添加为D
$.functionone = function(){
function setOptions(newOptions){
...
}
this.setOptions = setOptions;
}
在“this.setOptions”中添加“this”的目的是什么?我知道它引用了函数setOptions,但是在那里添加“this”会使函数被调用吗?我知道这是指DOM元素,但是在这个特定场景中使用它有什么意义呢。谢谢。代码创建了一个函数,并将其添加为DOM元素的“setOptions”属性
据推测,代码的其他部分将知道在DOM元素上查找并执行“setOptions”函数。
此
指调用该函数的特定DOM元素
以下一行:
this.setOptions = setOptions;
表示将函数“setOptions”分配给DOM元素的“setOptions”属性。这将从functionone
的范围中公开函数,使其成为$
对象的属性
例如:
$.functionone = function(){
function setOptions(newOptions){
//...
}
this.setOptions = setOptions;
};
typeof $.setOptions; // "undefined", it doesn't exist
$.functionone();
typeof $.setOptions; // "function"
JavaScript上的这个
值是在进行函数调用时隐式设置的
如果函数被绑定为对象的属性(如$.functionone
),则此
值将引用基本对象($
)
在国际海事组织,这不是很有用,它相当于:
$.functionone = function(){
this.setOptions = function (newOptions) {
//...
};
};
$.setOptions = function (newOptions) {
//..
};
在最后,当您调用functionone
时,它相当于:
$.functionone = function(){
this.setOptions = function (newOptions) {
//...
};
};
$.setOptions = function (newOptions) {
//..
};
区别在于函数没有命名,这对调试很有用
扩展jQuery.fn
对象时,在jQuery插件上使用this
值更为常见,在这种情况下,this
值指的是包含匹配元素的jQuery对象,而不是jQuery构造函数本身