JSX is a tree of deferred function calls. It's nothing to do with HTML, despite them looking similar. Normal function calls are not equivalent
function MyThing() {
return (
el(A, {value: 123}, [
el(B, {value: 456, foo: true}, [
el(C, {awesome: true}),
el(D, {awful: false})
])
])
);
}
but there's a reason people prefer JSX syntax