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。
为什么代码以不同的方式工作?
发布于 2011-10-14 17:39:32
在JQuery 1.4.2 source (包装器中的)的顶部,toString被定义为Object.prototype.toString。全局toString函数与原型toString方法不同,因此会产生不同的结果。
// Save a reference to some core methods
toString = Object.prototype.toString,发布于 2011-10-14 17:27:31
这个是事实:
alert( Object.prototype.toString.apply(t) );https://stackoverflow.com/questions/7765602
复制相似问题