Javascript TypeError:对象没有方法

时间:2012-06-30 19:48:57

标签: javascript oop

出于某种原因,我在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}}

2 个答案:

答案 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放在原型上,这样每次创建时都不会将它添加到对象中。