如题
不想用jquery的getOwnPropertyNames
var getProperty = function(obj) {
var nArr = [];
for (var i in obj) {
nArr.push[i];
}
console.log(nArr);
return nArr;
}
getProperty({a:1,b:2})
最后返回的结果是[];
如果换成
var getProperty = function(obj) {
var nArr = [],
k = 0;
for (var i in obj) {
nArr[k] = i;
k++;
}
console.log(nArr);
return nArr;
}
getProperty({a:1,b:2});
则可以返回正确的结果['a','b'],为何
nArr.push(i)
括号打错!!!!
JS 的 for in 存在 hasOwnProperty 的坑。
你想要返回
['a', 'b']
,只需:即可(支持 IE9+)。
nArr.push[i];这个你确定运行不会报错?