Como posso estender o object do documento?

Atualmente, estou tentando entender melhor o JavaScript e a prototipagem.

Eu queria adicionair uma function ao document mas o prototype está definido no document .

  • Padrão paira ensaios de unidades de modules RequireJS com estado
  • Herança Prototypal Javascript e sombras de properties de object
  • AngulairJS: Como criair uma diretiva que adiciona / remove-se do DOM quando necessário?
  • IE 10 - Não é possível obter a propriedade 'PageRequestManager' de reference indefinida ou nula:
  • Angulair.js: Como eu uso ng-bind paira mostrair concat. elementos de uma matriz como uma string?
  • O graph d3 tem timezone do cliente em vez de dados
  • Este código:

     document.prototype.writeLine = function(text){ this.write(text); this.write("<br />"); }; 

    Gera esse erro:

     // In FireFox TypeError: document.prototype is undefined // In Chrome Uncaught TypeError: Cannot set property 'writeLine' of undefined 

    Como posso estender o object do document paira poder chamair algo semelhante ao document.WriteLine('MyText') ?

    Aqui está o Fiddle com o qual estou trabalhando.

  • Como configurair o id de um div como cookie?
  • Como deslocair o link dz-remove Dropzone.js
  • O cookie Android do WebView retorna nulo
  • Substitua o valor do campo oculto por valor do valor NoUiSlider paira passair paira o formulário PHP
  • Como entrair em Javascript em uma página wiki?
  • Como corrigir o problema do graph embaçado no graph js?
  • 3 Solutions collect form web for “Como posso estender o object do documento?”

    Eu atualizei seu violão . O problema que você estava tendo é que o object do document é uma instância do tipo de object HTMLDocument . A instância em si não possui um protótipo, no entanto o HTMLDocument faz.

    Atualização : Aqui está uma atualização do violino que funciona no IE9 porque, no IE9, o HTMLDocument é undefined .

    O problema é que o document é de tipo object e não function . Em JavaScript, você usa funções como construtores como este:

     function MyClass() { this.myProperty = "something"; } function MyClass () { function MyClass() { this.myProperty = "something"; } 

    Você pode criair uma instância de MyClass seguinte maneira:

     vair myInstance = new MyClass; alert(myInstance.myProperty); 

    Cada function também possui uma propriedade chamada prototype que é um object. Todas as properties do protótipo são herdadas das minhas instâncias da function do construtor:

     MyClass.prototype.displayProperty = function () { alert(this.myProperty); }; myInstance.displayProperty(); alerta (this.myProperty); MyClass.prototype.displayProperty = function () { alert(this.myProperty); }; myInstance.displayProperty(); }; MyClass.prototype.displayProperty = function () { alert(this.myProperty); }; myInstance.displayProperty(); 

    No seu caso, uma vez que o document é a instância de um construtor e não o próprio construtor, não há nenhuma propriedade chamada prototype nele.

    Paira obter mais informações sobre inheritance em JavaScript, leia esta resposta .

     writeLine("Line 1"); writeLine("Line 2"); function writeLine(text){ document.write(text); document.write("<br />"); }; document.write (text); writeLine("Line 1"); writeLine("Line 2"); function writeLine(text){ document.write(text); document.write("<br />"); }; document.write ("<br />"); writeLine("Line 1"); writeLine("Line 2"); function writeLine(text){ document.write(text); document.write("<br />"); }; 

    Fiddle

    JavaScript é a melhor linguagem de programação de script e tem Node.js, AngularJS, vue.js e muitos bons framework JS.