我一直在上课学习基本的Javascript概念。 我正在尝试使用ES5语法。
顺便说一句,我陷入了这个问题。 我用函数声明定义了一个类。并在该类中定义了一个方法。
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);
但是当我用它的实例调用它时,我得到了错误。我认为问题是绑定...但是我不知道应该在哪里绑定哪一个。
谢谢!
答案 0 :(得分:1)
您当前仅将addPassenger
函数声明为函数内部的常量。
要“使函数成为类的一部分”,请使用 this
this.addPassenger = function(p) {
////
}
答案 1 :(得分:0)
在使用const or function
语法在vehicle函数内部创建函数时,该函数不属于实例变量,而是构造函数的私有函数。为了从instace对象使用它,您需要为实例定义它,如
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);
答案 2 :(得分:0)
您需要将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);