isPlainObject()函数怎么在jQuery中使用

  介绍

这篇文章将为大家详细讲解有关isPlainObject()函数怎么在jQuery中使用,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

jQuery中的isPlainObject()函数用于判断指定参数是否是一个纯粹的对象,返回值为布尔类型。

“纯粹的对象“,就是通过{},新对象(),Object.create (null)创建的对象。

这个方法的作用是为了跟其他的JavaScript对象如空,数组,宿主对象(文档),DOM等作区分,因为这些用typeof都会返回对象。

<强>使用

语法:

美元。isPlainObject(对象)

参数说明:

对象:任意类型需要进行判断的任意值。

.isPlainObject美元({});,,//真实的   .isPlainObject美元(new 对象);,,//真实的   .isPlainObject美元(Object.create (null));,,//真实的   美元.isPlainObject([]);,,//假的   .isPlainObject美元(文档);,,//假

<强>源码分析

我们来看看jQuery 3.3.1版本下的源码:https://github.com/jquery/jquery/blob/ac9e3016645078e1e42120822cfb2076151c8cbe/src/core.js L236

var  class2type =, {};//Object.getPrototypeOf(),方法返回指定对象的原型(内部[[原型]]属性的值)。   var  getProto =, Object.getPrototypeOf;//相当于Object.prototype.toString   var  toString =, class2type.toString;//hasOwnProperty(),方法会返回一个布尔值,指示对象自身属性中是否具有指定的属性//相当于Object.prototype.hasOwnProperty   var  hasOwn =, class2type.hasOwnProperty;//因为,hasOwn 是一个函数,所以这里调用的是内置对象,Function 的toString(),方法//相当于Function.prototype.toString   var  fnToString =, hasOwn.toString;//相当于,Function.prototype.toString.call(对象)//就是Object 构造函数,转字符串的结果//,ObjectFunctionString 其实就是,“function 对象(),{,[native 代码]}“,这样的一个字符串   var  ObjectFunctionString =, fnToString.call(对象);      function  isPlainObject  (obj), {   ,var 原型,男星;

<强>总结

从源码来看,isPlainObject()方法的实现,主要分三部分

1,去掉类型不是对象的,

用的是Object.prototype.toString.call()方法,这个方法所有类型都会得到不同的字符串,而不是用类,因为typeof只能区分基本类型,比如数组,typeof返回的还是“对象”字符串

var  arr =, [];   var  obj =, {};      typeof ,加勒比海盗,,,,,//皁bject"   typeof  obj,,,,,//皁bject"   typeof 文档;,,,,//皁bject"      Object.prototype.toString.call (arr);,,,,//癧object 数组]“;   Object.prototype.toString.call (obj);,,,,//癧object 对象]“;   Object.prototype.toString.call(文档),,,,,//癧object  HTMLDocument]“

2,判断对象有没有原型,没有原型的对象算纯粹对象

3,判断是不是通过“{}”;或“新Object"方式创建的对象

这就要判断他们的构造函数了,所以用Function.prototype。toString方法

函数对象覆盖了从对象继承来的Object.prototype。toString方法。
函数的toString方法会返回一个表示函数源代码的字符串。具体来说,包括函数关键字、形参列表,大括号,以及函数体中的内容。

function  fn(说){   this.say 才能,=,说;   }      Function.prototype.toString.call (fn);,//癴unction  fn(说){//,,this.say =,说;//}“;      Function.prototype.toString.call(对象);//癴unction 对象(),{,[native 代码]}“

关于isPlainObject()函数怎么在jQuery中使用就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看的到。

isPlainObject()函数怎么在jQuery中使用