[英]TypeError when I use this in an object
您能否解释为什么此代码返回此错误TypeError: this.b is not a function
:
var a = {
b: function() {
return 1;
},
c: this.b()
}
因为在反对a
初始化, this
是指向窗口对象,只是在构造函数中this
将是在新对象的情况下得到建立。
试试这个以获得更多信息。
var a = {b: function() {return 1;}, c: this}
console.log(a.c) //output is window object
尝试这个:
var maker = function(){
this.b = function(){return 1;};
this.c = b();
}
var a = new maker();
console.log(a.b());
console.log(a.b);
console.log(a.c);
关键字“新”是关键。
您可以创建仅被调用的函数,而无需使用“ new”
或将创建并返回新对象并需要使用new的函数,这些通常称为构造函数,但关键是此处使用关键字new会更改函数的行为,请注意,没有“退还;” 函数中的一行,这是通过使用“ new”来暗示的
希望能有所帮助。 当这有意义时,请更深入地研究原型过程并进行试验。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.