d.isPlainWithProtoObject()
d.isPlainWithProtoObject( value )
- 返回: Boolean
判断值是普通对象,但是不包含没有原型的普通对象。
WARNING
相对于d.isPlainObject()的范围它更小。
d.isPlainWithProtoObject( value ) from @1.0
- value
- 类型: Anything
- 描述: 任意类型的参数
js
d.isPlainObject({ x: 0, y: 0 }) // => true
d.isPlainObject(Object.create(null)) // => false
d.isPlainObject(new Object()) // => true
为何会有这个方法的存在?
字面量 / new Object 创建的对象,都是有原型的,可以访问 Object.prototype
上的方法,比如:
js
obj1.toString() // "[object Object]"
obj1.hasOwnProperty("x") // true
因此如果你使用jQuery的$.isPlainObject()
判断它是否是对象,然后调用了原型上的方法就会报错。 该方法就是为了弥补不足,也许您更应该把$.isPlainObject()
中的方法替换成d.isPlainWithProtoObject()
来确保不会发生一些意外情况。