gpt4 book ai didi

Javascript继承问题

转载 作者:搜寻专家 更新时间:2023-11-01 05:07:36 24 4
gpt4 key购买 nike

为什么下面代码中的版本 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

Live demo here.

最佳答案

当你调用 person(name) 时,它会被绑定(bind)到全局对象的 this 调用,所以这只是设置 window.name = "Misha"。您希望 person.call(this, name) 将其显式绑定(bind)到正确的 this

关于Javascript继承问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5864567/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com