2017-02-11 2 views
-1

Why do built-in functions not have a prototype property?
Je vois un poste sur le lien ci-dessus, mais il ne résout pas mon problème.

Je suis en mesure de reproduire certains objets comme construit dansImpossible de reproduire la fonction javascript intégré

var w=window; 
 
w.alert("hi"); 
 
var d=document; 
 
console.log(d.getElementById);

Mais je ne peux pas reproduire les fonctions

var a=document.getElementById; 
 
console.log(a);

Le prototype est copié mais quand invocating Il ne fonctionne pas

var a=document.getElementById; 
 
console.log(a('id'));

J'utilise ceci pour réduire l'effort de codage. Je sais que je peux le faire en utilisant

function a(id){ 
 
return document.getElementById(id); 
 
} 
 
console.log(a('id'));

Mais ce n'est pas ce que je cherche. Y at-il une autre façon de répliquer un funciton

+2

'var a = document.getElementById.bind (document);' œuvres. – Xufox

+2

Cela n'a rien à voir avec le prototype, mais * ceci * lorsque * getElementById * est appelé doit être défini sur * document *. Dans le 3ème exemple, vous pouvez aussi faire 'a.call (document, id)'. – RobG

Répondre

0

@Xufox, cela fonctionne. Merci beaucoup

var a = document.getElementById.bind(document); 
 
console.log(a('id'));