On Tue, Aug 2, 2011 at 10:37 AM, Ian Hickson <[email protected]> wrote: > On Tue, 2 Aug 2011, Dimitri Glazkov wrote: >> On Tue, Aug 2, 2011 at 1:27 AM, Roland Steiner >> <[email protected]> wrote: >> > On Tue, Aug 2, 2011 at 4:36 PM, Jonas Sicking <[email protected]> >> > wrote: >> >> This doesn't explain why a factory method is better than explicit >> >> constructors though? The above could be written as >> >> >> >> new HTMLParagraphElement(null, "foo", ...); >> > >> > It's not a general use case, but at least when it comes to XBL-like >> > components, having a factory method that does all the lookup and >> > binding behing the scenes probably is easier to implement than hooking >> > a constructor (FWIW). >> >> I am not sure it will be easier but it does seem that it would be more >> natural to an author to write: >> >> var foo = new FooButton(); >> >> than: >> >> var foo = Element.create('x-foo-button'). > > One of the principles behind XB2L's design was graceful degradation, such > that sites would still mostly work without the bindings being applies. It > seems that if we're creating proprietary elements, that won't work. So I'm > not sure this is a use case we should be addressing.
We should have a good discussion about whether we should be aiming to subclass/extend DOM elements. Though in this particular context, graceful degradation is a useless concept: you're building DOM imperatively using APIs that haven't even yet even been invented properly. :DG<
