38 votes

Où sont les constructeurs tels que " new Image()` et `nouvelle Option()`, documenté?

Pas chez Mozilla, mais:

Compte tenu de ces références, il est discutable de savoir si mozilla.org, comme demandé ci-dessous, les documents de même.


Plus précisément, où, à l' mozilla.org sont des constructeurs comme new Image() et new Option() documentés dans un contexte contemporain?

Archaïque de la documentation,

décrit l'existence de ces constructeurs considérant comme intrinsèque du langage JavaScript composants, ce qui est incorrect.

javascript: alert([new Image(), '\n\n', new  Option()])

indique clairement leur manifeste par l'affichage de l'existence

[objet HTMLImageElement],

,[objet HTMLOptionElement]

Rhétoriquement, ce sujet:

javascript:alert([new Anchor(), new Preserve(), new Form(),,, ])

Quelles sont les autres primitive élémentaire DOM constructeurs sont là? Ou, il n'y a pas plus?

Est-il un anathème, et incompatible avec le DOM paradigme utilisé par Mozilla, à intégrer la programmation des définitions de l' new Image() et new Option() etc., expliquant leur absence? Pourtant, ces constructeurs sont clairement pas intrinsèque à la spécification du langage JavaScript et certainement pas en HTML. Alors, où, exactement, est-il correct paradigme actuel (en provenance d' mozilla.org) qui décrit entièrement, y compris les types d'arguments et de commandes?

références:


D'un côté: (merci de ne pas être distrait par ce - localiser les documents pertinents, comme spécifié dans le titre de l'article est le seul examen)

Cette réponse a incité la suite de l'examen. C'est seulement une observation.

javascript:
    alert([  Option, Image,
               JSON, Math, Error, 
                 Array, Boolean, Date, Function,
                   Number, Object, RegExp, String  ].join("\n\n"));
    alert( Image.toSource() );

produit dans FireFox:

[Option de l'objet]

[Image de l'objet]

[objet JSON]

[objet Math]

la fonction Error() { [native code] }

la fonction Array() { [native code] }

la fonction Boolean() { [native code] }

la fonction Date() { [native code] }

la fonction Function() { [native code] }

Numéro de fonction() { [native code] }

Objet function() { [native code] }

la fonction RegExp() { [native code] }

la fonction String() { [native code] }

et

({})

mais

Error: ({}) is not a constructor
Source File: javascript:alert(new ({}));
Line: 1

Est l'Image d'un constructeur ou pas? La réponse à cette devrait (normalement) être trouvés dans les documents qui répondent à la question posée dans cet affichage de titre. Cela devrait mettre l'accent sur les incohérences, des anomalies et des irrégularités de catalogage Image et Option etc. dans un document approprié.

10voto

RobG Points 41170

Il y a une distinction entre JavaScript™ (mise en œuvre de ECMAScript pour la manipulation DOM par Mozilla, aka Gecko) et le terme générique de "javascript" qui est utilisé pour décrire script similaire environnements dans d'autres navigateurs (ex: JScript dans IE).

Archaïque de la documentation, [...] décrit l'existence de ces constructeurs les considérant comme intrinsèque du langage JavaScript composants, ce qui est incorrect.

Comment voulez-vous venir à cette conclusion? JavaScript™ appartient à Mozilla de sorte qu'ils peuvent spécifier qu'il contient tout ce qu'ils veulent. JavaScript™ a eu une Image et l'Option constructeur depuis le début, d'autres implémentations avez copiés de sorte que chaque navigateur dans l'existence a eux. Ces fonctionnalités existaient avant la création du W3C DOM interfaces et, où omniprésents, sont étiquetés "DOM 0", ce qui signifie vraiment été pris en charge par Netscape Navigator et Internet Explorer à l'époque de DOM 1.

DOM 0 n'est pas officiellement documentée n'importe où. HTML5 est une tentative de rédaction d'une spécification du HTML et du javascript, est implémentée dans les navigateurs, de sorte qu'il comprend à la fois l'Image et l'Option constructeurs et ainsi DOM 0 fonctionnalités, mais ils ne sont pas labellisés ou classés comme tels.

[...]

Pourtant, ces constructeurs sont clairement pas intrinsèque à la langue spécification de JavaScript

Il n'y a pas de spécifications publiées pour JavaScript™, il n'est que le JavaScript de la documentation à Mozilla Developer Network (MDN). Notez également que la documentation au MDN est un wiki public que quiconque de créer et de modifier, y compris vous. :-)

Vous vous trompez en croyant que la documentation de Mozilla est une sorte de spécification complète pour JavaScript™-il n'est pas. Non pas par un long chemin. Il est vraiment juste de la documentation qui a été ajouté par les personnes intéressées, principalement par fouiller le navigateur et de voir ce qu'il fait. Il y a aussi une Référence JavaScript, mais vous pouvez également trouver que dépourvu de.

[...]

HTMLImageElement Mozilla documentation

Le lien pour le Gecko DOM documents de référence, le code JavaScript de la mise en œuvre du W3C HTMLImageElementInterface qui n'a pas une Image de constructeur.

Contemporain précédent de l'Image() constructeur utilisation de Mozilla

Ce qui indique qu'il existe, mais il n'y a aucun endroit pratique pour le documenter. Il pourrait être mieux documentée dans le JavaScript de Référence. Si vous souhaitez l'ajouter, obtenir un MDN compte (gratuit, très facile) et l'ajouter.

Modifier

Il y a maintenant une Image de l'article, MDN que des liens vers les normes pertinentes.

2voto

Simon Lieschke Points 7351

FWIW Microsoft a de la documentation pour ces deux constructeurs sur MSDN:

1voto

The Demz Points 1010

HTML 5

DOM classe d'Option

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

Plusieurs constructeurs sont fournis pour la création de HTMLOptionElement objets (en plus de l'usine méthodes de DOM de Base comme createElement()): Option (en Option) (texte), Option(texte, valeur), Option(texte, valeur, defaultSelected) et Option(texte, valeur, defaultSelected, sélectionné).

0voto

micha Points 439

En fait, je n'ai jamais eu à utiliser les arguments du constructeur. Je viens de créer l'objet et de remplir les membres par la suite.

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

Quand je "rencontre" une nouvelle classe en Javascript, j'ai l'explorer à l'aide de JSON.stringify , et en utilisant un morceau de code comme ceci:

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(", "));

Parce qu'il est beaucoup plus facile à trouver (sur google) informations sur les noms de membres que sur une description de fonction.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X