gpt4 book ai didi

javascript - 为什么选择 mixin 而不是原型(prototype)继承

转载 作者:行者123 更新时间:2023-11-30 10:12:48 25 4
gpt4 key购买 nike

我正在阅读有关观察者 的章节 here以下代码实现了Subject 实体的接口(interface):

function Subject(){...}
Subject.prototype.addObserver = function( observer ){...};
Subject.prototype.removeObserver = function( observer ){...};
Subject.prototype.notify = function( context ){...};

然后是产生mixin的扩展函数:

function extend( extension, obj ){
for ( var key in extension ){
obj[key] = extension[key];
}
}

下面的代码将具体主题创建为一个复选框:

var controlCheckbox = document.getElementById( "mainCheckbox" );

// Extend the controlling checkbox with the Subject class
extend( new Subject(), controlCheckbox );

我的问题是为什么 controlCheckbox 被混入而不是继承自 Subject 类?

最佳答案

My question here is why controlCheckbox was mixed-in instead of inheriting from Subject class?

因为 controlCheckBoxHTMLInputElement 的实例,我们不能让(也不想)从任意类继承。

将接口(interface)(Subject)混合到 DOM 元素甚至 DOM 类中 is questionable anyway , 创建一个包装器对象可能是一个更好的主意 (new Subject(document.getElementById("mainCheckbox"))).

关于javascript - 为什么选择 mixin 而不是原型(prototype)继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25530752/

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