gpt4 book ai didi

Javascript继承实现问题

转载 作者:行者123 更新时间:2023-11-29 20:25:19 25 4
gpt4 key购买 nike

在他关于 javascript inheritance 的站点文章中, Harry Fuecks 解释了一种实现继承的方式如下:

    function copyPrototype(descendant, parent) {
var sConstructor = parent.toString();
var aMatch = sConstructor.match( /\s*function (.*)\(/ );
if ( aMatch != null ) { descendant.prototype[aMatch[1]] = parent; }
for (var m in parent.prototype) {
descendant.prototype[m] = parent.prototype[m];
}
};

虽然我理解他的代码,但我想到了一个问题 - 为什么不删除 for 循环并简单地执行以下操作:

 function copyPrototype(descendant, parent) {
var sConstructor = parent.toString();
var aMatch = sConstructor.match( /\s*function (.*)\(/ );
if ( aMatch != null ) { descendant.prototype[aMatch[1]] = parent; }
descendant.prototype = parent.prototype;
};

谢谢。

最佳答案

将一个函数prototype分配给另一个函数只会分配对原始prototype的引用;两者将共享相同 prototype 对象。遍历 prototype 创建其所有成员的浅拷贝。

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

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