【发布时间】:2017-06-03 14:21:39
【问题描述】:
在下面的代码中,构造函数原型上定义的getName() 方法定义了一个子方法getAge()(因为它是function object,我认为是这样)但是typeof emp1.getName == "object" 返回false 但emp1.getName.hasOwnProperty('getAge')返回true。
var fname = "Ram";
var lname = "Singh";
var age = "48";
function employee(fname, lname, age) {
this.fname = fname;
this.lname = lname;
this.age = age;
}
employee.prototype.getName = function () { return "Name is: " + this.fname + " " + this.lname; },
employee.prototype.getName.getAge = "function () { return + this.age; }"
var emp1 = new employee(fname, lname, age);
typeof emp1.getName == "object"; //returns false
emp1.getName.hasOwnProperty('getAge'); //returns true
如果getName 不是一个对象,那么它怎么会有一个子属性getAge 作为它自己的属性。
此外,emp1.getName.getAge() 返回 Age is: undefined 但 emp1.age 被初始化为 48,因为 emp1.age 返回 48 那么为什么 getAge() 无法获得 emp1.age 值。
【问题讨论】:
-
getAge中的this不是employee的实例。你试过记录它吗?
标签: javascript prototype javascript-objects