Mozilla Geliştirici Merkezi'nde, Function.prototype.bind
işleviyle ilgili bir sayfa vardır ve bu işlevi desteklemeyen tarayıcılar için bir uyumluluk işlevi sağlar. Ancak, bu uyumluluk kodunu analiz ederken neden instanceof nop
numaralı telefonu kullandığını bulamıyorum. Üste | nop
, function() {}
olarak ayarlanmıştır. bind
'daki ECMA spesifikasyonunun hangi kısmı buna denk geliyor? Ve hangi değişkenler function() {}
örneğidir?'instanceof function() {}' kullanımının arkasındaki sebep nedir?
Aşağıdakiler false
'u döndürür, dolayısıyla ne için kullanıldığını tam olarak bilmiyorum. instanceof function() {}
kontrolünde ne gibi şeyler geri dönüyor? aşağıdaki gibi
(function() {}) instanceof (function() {}) // false
kodudur:
Function.prototype.bind = function(obj) {
if(typeof this !== 'function')
throw new TypeError('Function.prototype.bind - what is trying to be bound is not callable');
var slice = [].slice,
args = slice.call(arguments, 1),
self = this,
nop = function() {},
bound = function() {
return self.apply(this instanceof nop ? this : (obj || {}),
args.concat(slice.call(arguments)));
};
bound.prototype = this.prototype;
return bound;
};