Javascript 函数错误中的方法 "is not a function"
Javascript method in Function Error with "is not a function"
我一直在用 class 学习基本的 Javascript 概念。
我正在尝试使用 ES5 语法。
顺便说一句,我被这个问题困住了。
我用函数声明定义了一个 class 。并在 class 中定义了一个方法。
const Vehicle = function() {
this.passengers = [];
console.log('Vehicle created');
const addPassenger = function(p) {
this.passengers.push(p);
}
}
const v = new Vehicle();
v.addPassenger("Frank");
v.addPassenger("Zim");
console.log(v.passengers);
但是当我用它的实例调用它时,我得到了错误。我认为问题是绑定......但我不知道我应该在哪里绑定哪个。
谢谢!
您目前仅将 addPassenger
函数声明为函数内部的常量。
到"make the function part of class",使用this
this.addPassenger = function(p) {
////
}
当您使用 const or function
语法在 vehicle 函数内部创建一个函数时,它不属于实例变量并且是构造函数私有的。为了从实例对象中使用它,您需要为实例定义它,例如
const Vehicle = function() {
this.passengers = [];
console.log('Vehicle created');
this.addPassenger = function(p) {
this.passengers.push(p);
}
}
const v = new Vehicle();
v.addPassenger("Frank");
v.addPassenger("Zim");
console.log(v.passengers);
您需要将 const
替换为 this
const Vehicle = function() {
this.passengers = [];
console.log('Vehicle created');
this.addPassenger = function(p) {
this.passengers.push(p);
}
}
const v = new Vehicle();
v.addPassenger("Frank");
v.addPassenger("Zim");
console.log(v.passengers);
我一直在用 class 学习基本的 Javascript 概念。 我正在尝试使用 ES5 语法。
顺便说一句,我被这个问题困住了。 我用函数声明定义了一个 class 。并在 class 中定义了一个方法。
const Vehicle = function() {
this.passengers = [];
console.log('Vehicle created');
const addPassenger = function(p) {
this.passengers.push(p);
}
}
const v = new Vehicle();
v.addPassenger("Frank");
v.addPassenger("Zim");
console.log(v.passengers);
但是当我用它的实例调用它时,我得到了错误。我认为问题是绑定......但我不知道我应该在哪里绑定哪个。
谢谢!
您目前仅将 addPassenger
函数声明为函数内部的常量。
到"make the function part of class",使用this
this.addPassenger = function(p) {
////
}
当您使用 const or function
语法在 vehicle 函数内部创建一个函数时,它不属于实例变量并且是构造函数私有的。为了从实例对象中使用它,您需要为实例定义它,例如
const Vehicle = function() {
this.passengers = [];
console.log('Vehicle created');
this.addPassenger = function(p) {
this.passengers.push(p);
}
}
const v = new Vehicle();
v.addPassenger("Frank");
v.addPassenger("Zim");
console.log(v.passengers);
您需要将 const
替换为 this
const Vehicle = function() {
this.passengers = [];
console.log('Vehicle created');
this.addPassenger = function(p) {
this.passengers.push(p);
}
}
const v = new Vehicle();
v.addPassenger("Frank");
v.addPassenger("Zim");
console.log(v.passengers);