2017-02-11 3 views
-1

Why do built-in functions not have a prototype property?
Я вижу сообщение по вышеуказанной ссылке, но это не решение моей проблемы.

Я могу повторить некоторые встроенные объекты, какНевозможно реплицировать встроенную функцию в javascript

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

Но я не могу повторить ФУНКЦИИ

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

Прототип копируется, но когда invocating Он не работает

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

Я использую это, чтобы снизить усилие кодирования. Я знаю, что я могу добиться этого с помощью

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

Но это не то, что я ищу. Есть ли другой способ репликации funciton

+2

'вар а = document.getElementById.bind (документ);' работы. – Xufox

+2

Это не связано с прототипом, но * этот * при вызове getElementById * должен быть установлен в * document *. В третьем примере вы также можете выполнить 'a.call (document, id)'. – RobG

ответ

0

@Xufox, Это работает. Большое спасибо

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

Смежные вопросы