JS 实现获取对象属性个数的方法小结
一、方法一
- 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
感兴趣的朋友可以使用本站在线工具:http://tools.jb51.net/code/htmljsRun 测试上述代码运行效果!
笔者在开发过程中比较常用的是第三种方法,通过getOwnPropertyNames返回对象所有属性,直接计算属性的长度,避免了js遍历相关操作。
发表评论