在某些情况下,this关键字可能不会引用我期望的对象. (最近的例子:in an key event,in my XBL)
现在,我总是使用jQuery中的$.fn存储我的变量,但我不确定它是否是最好的方法.
最佳答案
不要避免使用它.只是以正确的方式使用它. Javascript是一种基于原型的面向对象语言.如果使用对象原型创建对象,应始终知道它所指的内容.
jQuery.fn与jQuery.prototype是一回事. jQuery.fn只是一个别名.您还可以使用instanceof检查this关键字.
this instanceof jQuery
另一种常见做法是使用apply或call函数方法调用方法并在当时绑定上下文.这将保证函数的上下文.
这是一个简单的例子.
var div = document.getElementById('div1');
function sayId(){
alert(this.id);
}
sayId.call(div); // alerts div1