【发布时间】:2014-03-20 19:33:55
【问题描述】:
如何用原型 B 扩展原型 A,所以每当我调用原型 A 时,两者都会被执行?
var Helper = function() {
}
Helper.prototype.resizer = function() {
$('body').append(' Window resized ');
}
var Something = function() {
// Extend Helper.resizer with Something.anything
// extend(Helper.resizer, this.anything);
}
Something.prototype.anything = function() {
$('body').append(' Run this on resize to ');
}
var help = new Helper();
var some = new Something();
$(window).on("resize", function(){
help.resizer();
});
在 codepen 上做了一个例子: http://codepen.io/robbue/pen/892c8f61e1b5a970d6f694a59db401a6 允许使用 jQuery,或者只是香草。
【问题讨论】:
-
为什么不将
some.anything();添加到resize 事件处理程序中? -
你应该更简洁地说明你想要什么。当
help.resizer()被调用时,你希望anything()在哪个元素上被执行?在some?但总是,或者只有当调用者是help时? -
类似这样的东西 -> jsfiddle.net/6fsub/1 ???
-
我不希望
some.anything()出现在 resize 事件中,因为some.anything()不会一直运行,只有当我选择将其扩展到 resize 事件时。它应该只在调用者有帮助时运行
标签: javascript prototype extend