方法一:
var attributeCount = function(obj) { var count = 0; for(var i in obj) { if(obj.hasOwnProperty(i)) { // 建议加上判断,如果没有扩展对象属性可以不加 count++; } } return count; } var testObj = { name1: "value1", name2: "value2" }; alert(attributeCount(testObj)); // 2
方法二:
function TestObj(name, age) { this.name = name, this.age = age } TestObj.prototype.proCount = function() { var count = 0 for(pro in this) { if(this.hasOwnProperty(pro)) { // 这里扩展了对象,所以必须判断 count++; } } return count; } var testObj = new TestObj('名称', 12); alert(testObj.proCount()); // 2
方法三:
var testObj = { name1: "value1", name2: "value2" }; alert(Object.getOwnPropertyNames(testObj).length); // 2