作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这个fn是吗:
function isplainobj ( obj ) {
return Object.prototype.toString.call( obj ) === "[object Object]";
}
做与 jQuery 相同的事情:$.isPlainObject() ?
最佳答案
不,事实并非如此。
这是它的实现:
isPlainObject: function( obj ) {
var key;
// Must be an Object.
// Because of IE, we also have to check the presence of the constructor property.
// Make sure that DOM nodes and window objects don't pass through, as well
if ( !obj || jQuery.type(obj) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) {
return false;
}
try {
// Not own constructor property must be Object
if ( obj.constructor &&
!core_hasOwn.call(obj, "constructor") &&
!core_hasOwn.call(obj.constructor.prototype, "isPrototypeOf") ) {
return false;
}
} catch ( e ) {
// IE8,9 Will throw exceptions on certain host objects #9897
return false;
}
// Support: IE<9
// Handle iteration over inherited properties before own properties.
if ( jQuery.support.ownLast ) {
for ( key in obj ) {
return core_hasOwn.call( obj, key );
}
}
// Own properties are enumerated firstly, so to speed up,
// if last one is own, then all properties are own.
for ( key in obj ) {}
return key === undefined || core_hasOwn.call( obj, key );
},
它检查它的类型是否是对象,它是否有构造函数以及它的属性是否是自己的属性。
例如,对于您的函数,类的实例将返回 true,但在这种情况下,因为它有一个构造函数,它将返回 false。
关于javascript - IsPlainObject,东西?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18531624/
这个fn是吗: function isplainobj ( obj ) { return Object.prototype.toString.call( obj ) === "[object
谁能解释一下 jQuery.isPlainObject() 和 jQuery.isEmptyObject() 之间的区别?对于没有属性的对象,它们都返回 true。例子 jQuery.isEmptyO
FF/Chrome 中没有,我认为 IE 中也不应该有。毕竟 $() 不返回普通对象,而是返回 $ 的实例。我错了吗? 最佳答案 简短回答: 不,你没有疯,这确实是 jQuery 核心中的一个错误。
考虑以下几点: var o1 = {} var O = function () { return this } var o2 = new O() var o3 = function() {} va
我是一名优秀的程序员,十分优秀!