Where are constructors such as, `new Image()` and `new Option()`, documented?

前端 未结 4 447
-上瘾入骨i
-上瘾入骨i 2020-11-27 16:26

Not at Mozilla but:

  • for image:
    Thanks to Rickard for identifying
    http://www.w3.org/html/wg/drafts/html/CR/embedded-content-0.html#dom-imag
相关标签:
4条回答
  • 2020-11-27 16:59

    HTML 5

    DOM Option class

    http://dev.w3.org/html5/spec-preview/the-option-element.html

    Several constructors are provided for creating HTMLOptionElement objects (in addition to the factory methods from DOM Core such as createElement()): Option(), Option(text), Option(text, value), Option(text, value, defaultSelected), and Option(text, value, defaultSelected, selected).

    0 讨论(0)
  • 2020-11-27 17:04

    Actually, I never had to use the constructor arguments. I just create the object and fill the members afterwards.

    var img=new Image();
    img.src="path/to/image.jpg";
    

    When I "meet" a new class in Javascript, I explore it using JSON.stringify and by using a piece of code like this:

    var obj_to_explore=new Image();
    var dbg=[]
    for(var i in obj_to_explore){
        dbg.push(i+": "+obj_to_explore[i]);
    }
    //alert("explored object: " + dbg.join(", "))
    console.log("explored object: " + dbg.join(", "));
    

    Because it's much easier to find (on google) information on specific member names than on a feature description.

    0 讨论(0)
  • 2020-11-27 17:05

    FWIW Microsoft has documentation for both these constructors on MSDN:

    • Image
    • Option
    0 讨论(0)
  • 2020-11-27 17:21

    There is a distinction between JavaScript™ (the implementation of ECMAScript for DOM manipulation by Mozilla, aka Gecko) and the generic term "javascript" that is used to describe similar scripting environments in other browsers (e.g. JScript in IE).

    Archaic documentation, [...] describes the existence of these constructors implicating them as intrinsic JavaScript language components, which is incorrect.

    How do you come to that conclusion? JavaScript™ belongs to Mozilla so they can specify that it contains whatever they want. JavaScript™ has had an Image and Option constructor since the very beginning, other implementations have copied them so that every browser in existence has them. Such features existed before the creation of the W3C DOM interfaces and, where ubiquitous, are labelled "DOM 0", which really means were supported by Netscape Navigator and Internet Explorer at the time of DOM 1.

    DOM 0 is not officially documented anywhere. HTML5 is an attempt at writing a specification for HTML and javascript as is implemented in browsers, so it includes both the Image and Option constructors and so includes DOM 0 features, but they aren't labelled or classified as such.

    [...]

    Yet, these constructors are clearly not intrinsic to the language specification of JavaScript

    There is no published specification for JavaScript™, there is only the JavaScript documentation at Mozilla Developer Network (MDN). Also note that the documentation at MDN is a public wiki that anyone can create and edit, including you. :-)

    You are mistaken in believing that the documentation at Mozilla is some kind of complete specification for JavaScript™—it isn't. Not by a long way. It is really just documentation that has been added by interested persons, mostly by poking around the browser and seeing what it does. There is also a JavaScript Reference, but you may also find that lacking.

    [...]

    HTMLImageElement Mozilla documentation

    That link to the the Gecko DOM reference documents the JavaScript implementation of the W3C HTMLImageElementInterface which does not have an Image constructor.

    Contemporary precedent for Image() constructor use at Mozilla

    Which indicates that it exists, but there is no convenient place to document it. It might be best documented in the JavaScript Reference. If you wish to add it, get an MDN account (free, very easy) and add it.

    Edit

    There is now an Image article at MDN that links to relevant standards.

    Edit 25 May 2015

    The Option constructor is documented in HTML5.

    0 讨论(0)
提交回复
热议问题