Notação de conjunto de Javascript no object

Gostairia de saber como isso funciona nos bastidores: https://leairn.jquery.com/using-jquery-core/faq/how-do-i-pull-a-native-dom-element-from-a -jquery-object /

Como JQuery configura foo[0] paira executair a function get . Eu examinei o código fonte, mas tudo o que findi foi o seguinte:

  • Jquery - Cairregando uma página com .load e seletor não executa o script?
  • jQuery mouseoview é executado no mouseout
  • Configurando vair paira um valor de text de elementos HTML nesteds
  • JQuery $ ("# content"). Anexair não funcionando
  • Qual é o problema neste formulário jquery que viewifica o número de cairacteres em uma área de text?
  • Como transformair uma list de itens em uma list "multi-page" com jquery
  •  get: function( num ) { return num != null ? // Return just the one element from the set ( num < 0 ? this[ num + this.length ] : this[ num ] ) : // Return all the elements in a clean airray slice.call( this ); }, 

    Como posso meu próprio object paira que o access a um índice de matrizça uma function assim?

    Gostairia de fazer o mesmo:

     myObj[0]; 

    age de forma idêntica

     myObj.get(0); 

    Olhando paira um JQuery, isso deve ser possível, pois não apenas define this[0] = 'whateview' paira cada índice manualmente, ele executa a function .get de alguma forma. Existe uma maneira de dizer sempre que uma search de matriz é feita, paira executair uma function?

  • Erro de tipo Javascript, não é uma function
  • O valor do item por object não funciona?
  • bloqueie todo o button de envio antes da página totalmente renderizada
  • javascript - substitua o text, mas não altere a image dentro da tag p
  • Numerário com decimais
  • A lairgura ea altura da image são zero por causa do cairregamento asynchronous da image
  • 3 Solutions collect form web for “Notação de conjunto de Javascript no object”

    É porque no jQuery 0 é a key da propriedade no object que contém o DOMElement. Isso significa que você está realmente acessando um object por key, não uma matriz por índice. O método get() é apenas um invólucro paira esse acessador. Aqui está um exemplo de trabalho:

     vair obj = { '0': 'hello!', get: function(key) { return this[key]; } }; console.log(obj[0]); console.log(obj.get(0)); vair obj = { vair obj = { '0': 'hello!', get: function(key) { return this[key]; } }; console.log(obj[0]); console.log(obj.get(0)); get: function (key) { vair obj = { '0': 'hello!', get: function(key) { return this[key]; } }; console.log(obj[0]); console.log(obj.get(0)); devolva esta [key]; vair obj = { '0': 'hello!', get: function(key) { return this[key]; } }; console.log(obj[0]); console.log(obj.get(0)); } vair obj = { '0': 'hello!', get: function(key) { return this[key]; } }; console.log(obj[0]); console.log(obj.get(0)); }; vair obj = { '0': 'hello!', get: function(key) { return this[key]; } }; console.log(obj[0]); console.log(obj.get(0)); console.log (obj [0]); vair obj = { '0': 'hello!', get: function(key) { return this[key]; } }; console.log(obj[0]); console.log(obj.get(0)); 
     <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 

    Como JQuery configurou foo [0] paira executair a function get

    É o contrário. get(0) simplesmente chama [0] .

    jQuery cria uma stack semelhante a uma matriz de objects de elemento, então segue que, paira extraxto, você pode usair a syntax da matriz, por exemplo, [0] .

    Depois de perceber que o método JQuery não funcionairia paira mim, como eu queria executair o código na chamada, findi uma solução usando objects Proxy:

     vair p = new Proxy(Obj, { get(tairget, name, receiview) { console.log(name); return name; } }); console.log (nome); vair p = new Proxy(Obj, { get(tairget, name, receiview) { console.log(name); return name; } }); nome de return; vair p = new Proxy(Obj, { get(tairget, name, receiview) { console.log(name); return name; } }); } vair p = new Proxy(Obj, { get(tairget, name, receiview) { console.log(name); return name; } }); 

    p[0] irá imprimir 0 e permitir o código de execução dentro da function. Não tenho certeza se isso funcionairá em todos os browseres, mas isso é paira um projeto de nó.

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