gpt4 book ai didi

使用 .call(this) 的 JavaScript 继承

转载 作者:搜寻专家 更新时间:2023-11-01 04:15:40 26 4
gpt4 key购买 nike

<分区>

代码来自 MDN :

function Employee() {
this.name = "";
this.dept = "general";
}

function Manager() {
Employee.call(this);
this.reports = [];
}

Manager.prototype = Object.create( Employee.prototype );

function WorkerBee() {
Employee.call(this);
this.projects = [];
}

WorkerBee.prototype = Object.create( Employee.prototype );

var x = new WorkerBee();

console.log( x );

输出:WorkerBee {name: "", dept: "general", projects: Array[0]}

Employee.call(this); 有什么作用?我从运行代码中知道继承成功是必要的。 .call() 的文档简单地说明了,

method calls a function with a given this value and arguments provided individually.

OK 所以它调用构造函数 Employee() 但是没有使用 new 运算符,也没有返回对象的 return 和它的属性。 Employee.call(this) 是如何让子对象继承父属性的?

如果省略此行,则只有 projects 数组作为属性出现。

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