这是一个javascript原型
我只是一个JavaScript初学者,我发现这个关键字对我来说真的很难理解。我知道这取决于函数的调用方式 代码是这是一个javascript原型,javascript,this,Javascript,This,我只是一个JavaScript初学者,我发现这个关键字对我来说真的很难理解。我知道这取决于函数的调用方式 代码是 MyClass = function() { this.element = $('#element'); this.myValue = 'something'; // some more code } MyClass.prototype.myfunc = function() { this.element.click(function() {
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
在this.element.click(function(){}
最有可能的是,它是由new MyClass()
表达式创建的对象,JavaScript引擎创建一个新对象,指定MyClass.prototype
作为对象的基础原型,然后调用MyClass
,其中this
指向新对象。它返回该对象作为表达式的结果:
var o = new MyClass();
此时,如果您这样做:
o.myfunc();
…然后在myfunc
中,此
将等于o
这个
在JavaScript中是一个很难理解的概念,这就是我在上面说“最有可能”的原因。更多信息(在我的博客上):
Myclass
是一个构造函数。当您使用new
从它创建一个新对象时,此
引用该新对象。Brother没有更多的链接可引用,我无法正确获取其信息。:(您可以检查右侧(相关列)关于这个问题。使用调试器,设置断点并检查值将提供经验性的见解。对于这个理论,请阅读一本关于JavaScript的好书。因此,如果我调用var b=Myclass()…那么函数中的这个关键字将是b..对吗?@user3517846:不,您需要new
中的var b=new Myclass()
然后,这个
将在调用中b
,前提是您像这样调用myfunc
:b.myfunc();
收到了,谢谢..:D..:D..这只适用于原型的情况,对吗?