2016-11-05 30 views
11

fonksiyonlar Ancak düğümünde FunctionNode.js'deki işlev yapıcı nedir? tarayıcı (krom en az) olarak

setTimeout instanceof Function 
// true 

örnekleri, onlar

setTimeout instanceof Function 
// false 

Yani setTimeout 'ın kurucu Function ne olur değil değil mi?

+0

yapıcı ** ** bir işlevdir: Bir iframe gelen setTimeout ödünç zaman

Bu yüzden web tarayıcılarında ne biraz benzer sanırım. – undefined

+0

Ben onun * a * fonksiyonunu biliyorum typeof setTimeout.constructor', ben düğüm sürüm 6.5.0 kullanarak hangi işlev –

+0

soruyorum 'deneyin, 'Function.prototype.check = true; console.log (setTimeout.check); ' benim için doğru baskılar – Sergeon

cevap

3

yapıcı Function görünüyor, ancak başka bir alemden bir. Bu kodu

console.log(Object.getOwnPropertyNames(setTimeout.constructor.prototype)); 

çalıştırırsanız

Eğer call, apply ve bind gibi tipik Function.prototype yöntemlerle bir dizi olsun.

var iframe = document.createElement('iframe'); 
document.body.appendChild(iframe); 
var win = iframe.contentWindow; 
console.log(win.setTimeout instanceof Function);  // false 
console.log(win.setTimeout instanceof win.Function); // true 
+0

Yine de bunu neden yaptığından emin değil. – Oriol