我在javascript中向对象添加方法时遇到问题.以下代码应返回一个数字,而是返回NaN.希望你能帮忙
function people(name, age){
this.name = name;
this.age = age;
this.numYearsLeft = pension();
}
function pension(){
numYears = 65 - this.age;
return numYears;
}
var andrews = new people("Andrews Green", 28);
console.log(andrews.numYearsLeft);
Run Code Online (Sandbox Code Playgroud)
你可以使用一个原型模型-制作pension一个方法的people:
function people(name, age){
this.name = name;
this.age = age;
this.numYearsLeft = this.pension(); // note the `this`
}
people.prototype.pension = function(){ // note the `prototype`
var numYears = 65 - this.age;
return numYears;
};
var andrews = new people("Andrews Green", 28);
console.log(andrews.numYearsLeft); // 37
Run Code Online (Sandbox Code Playgroud)
使用prototype您的pension方法将继承构造函数的(people)属性(允许您使用this关键字引用).
这样做的另一个好处是,在每次new实例化时,people您都不会重新创建方法的新实例/召回pension.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Introduction_to_Object-Oriented_JavaScript
| 归档时间: |
|
| 查看次数: |
81 次 |
| 最近记录: |