[whatwg] Expandos and Prototyping

Charles Pritchard chuck at jumis.com
Mon May 11 18:05:35 PDT 2009


Are expando / prototype functions at all included in the HTML 5 specs?
While we may all know what Object.prototype does, I'd like to see its 
use added to
Section 6: Web browsers.

The Prototype Expando is not necessarily a Javascript-only construct, 
and neither is HTML 5.

While I'm not championing full prototype inheritance, I do wonder 
(out-loud),
whether some small section of HTML 5 might be describe the most basic of 
prototyping and expandos:

Many projects use "ellipse" or other shapes for example, but this is easier:
CanvasRenderingContext2D.prototype.funcName = function() {
    alert("Fill"+this.fillStyle);
}
.... document.createElement('canvas').getContext('2d').funcName();

I've never seen any developers attempt to use multiple inheritance 
within the CanvasRenderingContext2D object,
nor have I tested myself to see if Firefox (the champion of such 
schemes) supports it. Which is why I'd be
more than satisfied simply requiring single inheritance. It's already 
available in all implementations,
and we spent a good deal of time making it available in our own.

Expando Prototype would need descriptions of:
expandos, prototyped objects, for(... in ...)

All modern browsers support prototype, and so do many languages (without 
writing libraries).
We've confirmed that it expandos and prototypes work just fine in Active 
X, MS long ago created IDispatchEx.

Any host language with getter / setter availability can implement 
prototyping and expandos on an object, at least of one depth.

I'd like to see  ".prototype" described in the scripting section.

That said, I'm more hesitant to champion ".constructor" and ".__proto__".

-Charles






More information about the whatwg mailing list