出于某种原因,我在TypeError: Object #<Num> has no method 'getNumber'
作为numberOne
Num
时获得function Num(n) {
var number = n;
var getNumber = function() {
return number;
};
}
var numberOne = new Num(5);
console.log(numberOne.getNumber());
{{1}}
答案 0 :(得分:2)
您将getNumber
声明为函数内的局部变量。那些不会成为构造对象的属性。
使用this
:
this.getNumber = function() { ...
在构造函数中,this
引用要初始化的新创建的对象。
您还可以使用原型机制来提供对象属性。
答案 1 :(得分:1)
您正在创建一个名为getNumber
的局部变量,而不将其附加到对象。要么将它交给对象,要么把它放在原型上:
this.getNumber = function() {
或
function Num(n) {
this.number = n;
}
Num.prototype.getNumber = function() {
return this.number;
}
如果要创建大量对象,可能需要将getNumber
放在原型上,这样每次创建时都不会将它添加到对象中。