【发布时间】:2016-08-06 03:17:08
【问题描述】:
谁能向我解释一下 JavaScript 构造函数是如何工作的?具体来说,我说的是以下场景:
在我的 Webside 代码中,我有两个元素,我需要使用 MutationObserver 进行观察。我试着只用一个观察者来做这件事,但这没有用。所以我提出了以下解决方案:
var observer = new MutationObserver(function (mutations) { /*Code to do stuff */ });
var observer2 = new MutationObserver(function (mutations) { /*Code to do stuff */ });
然后我给了他们一些观察:
observer.observe(document.getElementById("textarea1"), {attributs: true, attributeFilter: ['style'] });
observer2.observe(document.getElementById("textarea2"), {attributs: true, attributeFilter: ['style'] });
有了这个观察者,我想改变风格,因为否则我会得到一个无限循环,我告诉观察者 .disconnect(),改变风格,然后让它重新开始观察。
因为 "textarea1" 和 "textarea2" 基本相同(但内容不同),我不想有两次相同的代码,唯一的区别是要调用的特定观察者对象。
所以我尝试了以下方法:
var observer = new MutationObserver(function (mutations) {
mutate(mutations, observer);
});
var observer2 = new MutationObserver(function (mutations) {
mutate(mutations, observer2);
});
function mutate(mutations, observer) {
/*do stuff with mutations and observer*/
}
而且效果很好。
这是我真正不明白的事情:如果构造函数的结果是我想要使用的参数,我如何将某些东西作为参数传递给构造函数...?
【问题讨论】:
标签: javascript constructor arguments