无论出于何种原因,我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());
无论出于何种原因,我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());
您在getNumber
函数内声明为局部变量。这些不会成为构造对象的属性。
使用this
:
this.getNumber = function() { ...
在构造函数中,this
指的是要初始化的新创建的对象。
您还可以使用原型机制来提供对象属性。
您正在创建一个getNumber
未将其附加到对象的局部变量。要么把它交给对象,要么把它放在原型上:
this.getNumber = function() {
或者
function Num(n) {
this.number = n;
}
Num.prototype.getNumber = function() {
return this.number;
}
如果您正在创建大量对象,您可能想要放置getNumber
原型,这样它就不会在每次创建时都添加到对象中。