我从JavaScript中的OO开始,我有一个具有以下方法的类:
count(element) {
return document.querySelectorAll(element).length;
}
get(element, occurence) {
return document.querySelectorAll(element)[occurence];
}
第一种方法分析DOM中存在多少个指定类型的元素并返回数字结果,第二种方法以querySelector()
的形式工作,但有一些区别。
我想将这些方法与其他方法链接在一起。但是据我所知,方法必须返回this
才能被链接。如何链接这些方法?
答案 0 :(得分:2)
只要方法返回具有方法的对象,就可以链接方法。例如,您可以编写:
str = yourObj.count(".classname").toString();
yourObj.get("#table tr", 3).appendChild(cell);
仅当要链接应用于原始对象的方法时,才需要使用return this;
。通常,只有使用修改对象的方法才能完成此操作。它使您可以通过流畅的界面执行多种修改,例如:
yourObj.set("foo", "bar").set("baz", "quux");
应该先进行set()
方法的修改,然后再进行return this;
。
如果该方法用于返回信息,那么它必须返回而不是this
。
答案 1 :(得分:2)
正如评论中指出的那样,您似乎想要构建另一个类似于jQuery的DOM实用程序帮助器。这可能不是最好的主意。
根据您的评论,这是2个包装程序的示例,这些包装程序扩展了节点集合和允许链接“ add”方法的节点的行为。
<Response>
<Dial>
<Conference startConferenceOnEnter="true" endConferenceOnExit="true">CALLERS_CONFERENCE_ID</Conference>
</Dial>
</Response>
/connect