Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用jQuery$.isEmptyObject()理解JavaScript Object.size()_Javascript_Jquery - Fatal编程技术网

使用jQuery$.isEmptyObject()理解JavaScript Object.size()

使用jQuery$.isEmptyObject()理解JavaScript Object.size(),javascript,jquery,Javascript,Jquery,JavaScript对象用于存储错误消息。如果有错误,效果很好,但如果没有错误(对象为空),代码将失败。因此,我添加了jQuery$.isEmptyObject()测试——现在如果有内容,它就会失败 为什么在尝试读取对象大小时此代码失败 HTML: <div>If visible, code not work</div> var tmp; var objErr = new Object(); objErr['test'] = 'bob'; if ($.isEmpt

JavaScript对象用于存储错误消息。如果有错误,效果很好,但如果没有错误(对象为空),代码将失败。因此,我添加了jQuery
$.isEmptyObject()
测试——现在如果有内容,它就会失败

为什么在尝试读取对象大小时此代码失败

HTML:

<div>If visible, code not work</div>
var tmp;
var objErr = new Object();

objErr['test'] = 'bob';

if ($.isEmptyObject(objErr) ){
    $('div').hide();
}else{    
    tmp = Object.size(objErr); //<=== fails here
    $('div').hide(); //if not work, js is broken
}
if (tmp > 1){
    $('div').hide();
    alert(tmp);
}else{
    $('div').hide();
}
如果可见,则代码不起作用
jQuery:

<div>If visible, code not work</div>
var tmp;
var objErr = new Object();

objErr['test'] = 'bob';

if ($.isEmptyObject(objErr) ){
    $('div').hide();
}else{    
    tmp = Object.size(objErr); //<=== fails here
    $('div').hide(); //if not work, js is broken
}
if (tmp > 1){
    $('div').hide();
    alert(tmp);
}else{
    $('div').hide();
}
var-tmp;
var objErr=新对象();
objErr['test']='bob';
如果($.isEmptyObject(对象)){
$('div').hide();
}否则{
tmp=Object.size(objErr);//1){
$('div').hide();
警报(tmp);
}否则{
$('div').hide();
}

什么是
Object.size
?按F12键并阅读控制台。尝试
Object.keys(objErr).length
而不是
Object.size(objErr)
一种更快的方法:
for(var tmp in objErr)break;
然后你就知道了……重复使用文档化差的代码的危险了。我想Object.size()是一个本机函数,但它来自此处:。谢谢,先生们。请添加注释作为信用回答