分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 软件开发

Jquery之isPlainObject源码分析

发布时间:2023-09-06 01:41责任编辑:顾先生关键词:暂无标签

今天对Jquery中 isPlainObject 源码分析。

1.  isPlainObject 方法的作用: 

  用来判断传入参数,是否是对象。

2. 源码分析:isPlainObject: function( obj ) {

 ??
??// 1. ?jQuery.type( obj ): ?通过 juery 封装的类型判断方法,如果不是 Object类型,返回false
??// 2. ?
obj.nodeType : ?用来判断是否是dom 节点, 如果是,返回 false
??// 3. ?
jQuery.isWindow( obj ) : 这个方法,很多人可能会误解其意思。 其真正意思是:判断指定参数是否是一个窗口,"窗口"就是浏览器内置的Window对象。 如果是,返回false.
  //
4. 总的来说,这个if判断的意思就是, 如果 传进来的是 不是 object对象 或者 dom节点 或者 “窗口” 就返回 false;
??if ( jQuery.type( obj ) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) {
 ?????return false;
??}

?
 ??try {
 ?????// 此if判断法: 主要是 防止把 “window.location” 当成 Obect 对象。
?????// 1.
obj.constructor : 判断 入参是否 具有 构造函数。
?????// 2.
core_hasOwn.call( obj.constructor.prototype, "isPrototypeOf" ) : 判断传入obj 的原型链上是否有 ”isPrototypeOf“ 方法。 如果有则是 object 对象,返回 ture; ?注意:只有 Object 对象的原型链上才有 isPrototypeOf 这个方法。
 ?????if ( obj.constructor &&
???????????!core_hasOwn.call( obj.constructor.prototype, "isPrototypeOf" ) ) {
????????return false;
?????}
??} catch ( e ) {
?????return false;
??}

??// 返回 ture;
??return true;
},

Jquery之isPlainObject源码分析

原文地址:https://www.cnblogs.com/tlsmile/p/8137054.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved