代碼:// 判斷參數(shù)是不是純粹的對象 通過{}、new Object()、Object.create(null) isPlainObject: function( obj ) { var proto, Ctor; // 借用toString方法判斷obj的類型是不是Object if ( !obj || toString.call( obj ) !== "[object Object]" ) { return false; } // 獲取對象的原型 proto = getProto( obj ); // 通過Object.create( null )創(chuàng)建的對象返回true if ( !proto ) { return true; } // 判斷對象是不是通過new Object()方式創(chuàng)建的 Ctor = hasOwn.call( proto, "constructor" ) && proto.constructor; // fnToString:將函數(shù)轉(zhuǎn)換成字符串 ObjectFunctionString:function Object() { [native code] } return typeof Ctor === "function" && fnToString.call( Ctor ) === ObjectFunctionString; }疑惑:為什么作者沒有用Object.prototype.toString.call()方法?無論對象是由new Object()、{}、Object()創(chuàng)建的,這個方法的返回結(jié)果都是字符串[object Object],難道這里面還有些別的坑么?
jQuery 源碼中的 isPlainObject 函數(shù)疑問點(diǎn)、求指教
慕田峪4524236
2019-03-13 17:13:53