我尝试使用原型链接将函数添加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
它导致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();