gpt4 book ai didi

javascript - 继承方式不同

转载 作者:可可西里 更新时间:2023-11-01 02:43:33 24 4
gpt4 key购买 nike

<分区>

我看到很多情况下js中的继承可以这样实现

function Organism(age) {
this.age = age;
}

Organism.prototype.growOlder = function(){ this.age = this.age + 1}
var org = new Organism("1000");

function Human(name,age){
Organism.call(this,age); //this sets up the properties on the human object
this.name = name;
}

Human.prototype = Object.create(Organism)
Human.prototype.constructor = Human; //sets the constructor
Human.prototype.run = function(){ console.log(this.name + "run")}

我的问题是,是否有人可以详细解释为什么 Object.create(Organism) 是必要的,并且只需这样做

Human.prototype = Organism.prototype

还不够,分别原型(prototype)链长这样

没有 object.create :Human.__proto__ -> Organism __proto__-> Object

使用 object.create:Human.__proto__-> IntermediateObject.__proto__ -> Organism.__proto__-> Object

感谢您的宝贵时间。

编辑:我知道 es6 类并继承了语法糖。不过,我只是好奇事情在较低级别上是如何工作的。

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