Object.size = function(obj){
var size = 0, key = "";
for(key in obj){
if(obj.hasOwnProperty(key)){
size++;
}
}
return size;
}
这是我创建的第一个功能。任务是创建两个函数,一个仅计算属性,另一个计算属性和方法。 (将计数限制为原始对象,我还需要将函数添加到Object原型中,以便我创建的每个对象都有两个自动作为属性可用的函数。)
那么我该怎么做第二个功能呢? (你能不能看看我的第一个,看看我的第一个功能是否有任何问题?) 非常感谢你!
答案 0 :(得分:0)
属性和方法的数量:
Object.keys(obj).length
物业数量:
#test used by underscore.js
function isMethod(obj, func) {
return !!(obj.func && obj.func.constructor && obj.func.call && obj.func.apply);
}
function num_properties(obj){
var size = 0;
for(key in obj){
if (!isMethod(obj, key)){
size++;
}
}
return size;
}
答案 1 :(得分:0)
你可以返回一个对象的数组[#properties,#method,#properties不是方法], 或只返回你想要的索引 -
Object.size= function size(obj){
var props= 0, methods= 0, key;
for(key in obj){
if(obj.hasOwnProperty(key)){
if(typeof obj[key]== 'function')++methods;
++props;
}
}
return [props, methods, props-methods];
}