题目描述
找出对象 obj 不在原型链上的属性(注意这题测试例子的冒号后面也有一个空格~)
1、返回数组,格式为 key: value
2、结果数组不要求顺序
1、返回数组,格式为 key: value
2、结果数组不要求顺序
我的解答:
不过提交通不过。原因:hasOwnProperty()方法使用错误,语法object.hasOwnProperty(key);
正确解答:
function iterate(obj) { var arr=[]; for(var item in obj){ if(obj.hasOwnProperty(item)){ arr.push(item+': '+obj[item]); //注意这里所说的空格 } } return arr; }
补充知识点:
hasOwnProperty()
函数用于指示一个对象自身(不包括原型链)是否具有指定名称的属性。如果有,返回true
,否则返回false
。
该方法属于Object
对象,由于所有的对象都"继承"了Object的对象实例,因此几乎所有的实例对象都可以使用该方法。
IE 5.5+、FireFox、Chrome、Safari、Opera等主流浏览器均支持该函数。
语法
object.hasOwnProperty( propertyName )
参数
参数 | 描述 |
---|---|
propertyName | String类型指定的属性名称 |
返回值
hasOwnProperty()
函数的返回值为Boolean类型。如果对象object
具有名称为propertyName
的属性,则返回true
,否则返回false
。