我正在阅读this Medium article关于创建自己的VirtualDOM并理解它,直到我遇到this JSfiddle,特别是第14行,其中显示$el.appendChild.bind($el);
。看起来他试图appendChild
没有任何参数(仅使用$ el作为this
值)!我很困惑。有人可以解释一下吗?
以下是代码:
/** @jsx h */
function h(type, props, ...children) {
return { type, props, children };
}
function createElement(node) {
if (typeof node === 'string') {
return document.createTextNode(node);
}
const $el = document.createElement(node.type);
node.children
.map(createElement)
.forEach($el.appendChild.bind($el));
return $el;
}
const a = (
<ul class="list">
<li>item 1</li>
<li>item 2</li>
</ul>
);
const $root = document.getElementById('root');
$root.appendChild(createElement(a));