我尝试使用原型链接将函数y()
添加到对象构造函数x
中。导致unexpected
错误:
意外的令牌
{
function x(a, b) {
this.a = a
this.b = b
}
x.prototype.y(){
console.log('hello')
}
我想要函数x为:
function x(a, b) {
this.a = a;
this.b = b;
y()
}
您没有将y
分配给函数。您的语法无效。相反,使用匿名函数:
x.prototype.y = function() {...}
参见下面的工作示例:
function x(a, b) {
this.a = a
this.b = b
}
x.prototype.y = function() {
console.log('hello');
}
let a = new x(1, 2);
a.y();
如果希望方法为静态,则可以省略prototype
:
function x(a, b) {
this.a = a
this.b = b
}
x.y = function() {
console.log('hello');
}
x.y();
您不能使用该语法-您需要这样声明它:
x.prototype.y = function() {
console.log("Hello");
};
这是因为你要将一个匿名函数分配给对象的一个属性——这就像你在构造函数中这样做一样。以下是您的代码的完整示例:
function x(a, b) {
this.a = a
this.b = b
}
x.prototype.y = function() {
console.log("Hello");
};
var anX = new x("a", "b");
anX.y();