gpt4 book ai didi

javascript - 通过 $.extend 从父类继承

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

下面两种继承方式有什么区别?

Subclass.prototype = $.extend(true, {}, Parent.prototype, proto);

function Subclass(){
var parent = new Parent();
$.extend(true, this, parent);
}

每种方法的优缺点?

谢谢!

编辑: 我目前正在使用第一种方法来扩展我的类,但我正在考虑改为实例化父对象,以便调用父类的构造函数。虽然我不相信我会一直想要那个......

最佳答案

主要区别在于第二个示例 new Parent(),您实际上是在调用 Parent 并创建一个可能导致意外问题的新对象。

与第一个示例一样,将 $.extend 与原型(prototype)一起使用,不会运行任何代码。 jQuery 会查看原型(prototype)并为您扩展对象,运行 Parent() 不会有可能的副作用

我无法像这位拥有最高答案的人那样解释它: How to "properly" create a custom object in JavaScript?

这是链接答案的引述

This example will work and you will see code like it in many tutorials. But man, that new Shape() is ugly: we're instantiating the base class even though no actual Shape is to be created. It happens to work in this simple case because JavaScript is so sloppy: it allows zero arguments to be passed in, in which case x and y become undefined and are assigned to the prototype's this.x and this.y. If the constructor function were doing anything more complicated, it would fall flat on its face.

关于javascript - 通过 $.extend 从父类继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5554388/

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