Mis*_*hko 4 javascript inheritance prototypal-inheritance
为什么下面的代码中的版本2不会产生与版本1相同的结果?
function person(name) {
this.name = name;
}
function student(id, name) {
this.id = id;
// Version 1
//this.inherit_from_person = person;
//this.inherit_from_person(name);
// Version 2
person(name);
}
s = new student(5, 'Misha');
document.write(s.name); // Version 1 => Misha
// Version 2 => undefined
Run Code Online (Sandbox Code Playgroud)
当你调用person(name)
它时会被this
绑定到全局对象进行调用,所以这只是设置window.name = "Misha"
.您希望person.call(this, name)
将其显式绑定到右侧this
.
归档时间: |
|
查看次数: |
156 次 |
最近记录: |