IE 8中的jQuery 1.4.2
当我致电$.isFunction(function() {})
时,它会返回true
源代码isFunction
功能:
isFunction: function (obj) {
return toString.call(obj) === "[object Function]";
},
当我在控制台toString.call(function() {}) === "[object Function]"
中写字时,它会抛出"Object doesn't support this property or method"
。
缩小版的源代码:
isFunction:function(a){return $.call(a)==="[object Function]"}
当我在控制台$.call(function() {})==="[object Function]"
中写字时,它会返回false
为什么代码以不同的方式工作?
答案 0 :(得分:0)
这个是事实:
alert( Object.prototype.toString.apply(t) );
答案 1 :(得分:0)
在JQuery 1.4.2 source(包装器内 )的顶部,toString
定义为Object.prototype.toString
。全局toString
函数与原型toString
方法不同,因此结果不同。
// Save a reference to some core methods
toString = Object.prototype.toString,