为了账号安全,请及时绑定邮箱和手机立即绑定

jQuery 源码中的 isPlainObject 函数疑问点、求指教

jQuery 源码中的 isPlainObject 函数疑问点、求指教

慕田峪4524236 2019-03-13 17:13:53
代码:// 判断参数是不是纯粹的对象 通过{}、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 )创建的对象返回true        if ( !proto ) {            return true;        }        // 判断对象是不是通过new Object()方式创建的        Ctor = hasOwn.call( proto, "constructor" ) && proto.constructor;        // fnToString:将函数转换成字符串 ObjectFunctionString:function Object() { [native code] }        return typeof Ctor === "function" && fnToString.call( Ctor ) === ObjectFunctionString;    }疑惑:为什么作者没有用Object.prototype.toString.call()方法?无论对象是由new Object()、{}、Object()创建的,这个方法的返回结果都是字符串[object Object],难道这里面还有些别的坑么?
查看完整描述

2 回答

?
狐的传说

TA贡献1804条经验 获得超3个赞

请注明jQuery的版本,不同版本实现代码细节上有差异。另外,你贴的代码是jQuery的源码,如是,请标明。


查看完整回答
反对 回复 2019-04-04
  • 2 回答
  • 0 关注
  • 482 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号