我只是JavaScript的初学者,我发现这个关键字对我来说真的很难理解。我知道this
取决于函数的调用方式。
代码是。
MyClass = function() {
this.element = $('#element');
this.myValue = 'something';
// some more code
}
MyClass.prototype.myfunc = function() {
this.element.click(function() {
});
}
new MyClass();
我只需要知道this
this.element.click(function() {}
表示的内容
它是否表示Myclass
?请帮助我理解JavaScript中原型函数中this
关键字的使用。
答案 0 :(得分:2)
我只需要知道
中this
this.element.click(function() {}
表示的内容
最有可能的是,它是由new MyClass()
表达式创建的对象。执行new MyClass()
后,JavaScript引擎会创建一个新对象,将MyClass.prototype
指定为对象的基础原型,然后调用MyClass
,this
指向新对象。它返回该对象作为表达式的结果:
var o = new MyClass();
此时,如果你这样做:
o.myfunc();
...然后在myfunc
内,this
将等于o
。
this
在JavaScript中是一个很滑的概念,这就是为什么我说"最有可能"以上。更多(在我的博客上):