如何在JavaScript中检查对象是否具有特定属性?
考虑以下代码:
x = {'key': 1};
if ( x.hasOwnProperty('key') ) {
//Do this
}
那是最好的做法吗?
如何在JavaScript中检查对象是否具有特定属性?
考虑以下代码:
x = {'key': 1};
if ( x.hasOwnProperty('key') ) {
//Do this
}
那是最好的做法吗?
如果您想在不使用hasOwnProperty()
检查的情况下迭代对象的属性,
请使用for(let key of Object.keys(stud)){}
方法:
for(let key of Object.keys(stud)){
console.log(key); // will only log object's Own properties
}
完整示例及与for-in with hasOwnProperty()
的比较
function Student() {
this.name = "nitin";
}
Student.prototype = {
grade: 'A'
}
let stud = new Student();
// for-in approach
for(let key in stud){
if(stud.hasOwnProperty(key)){
console.log(key); // only outputs "name"
}
}
//Object.keys() approach
for(let key of Object.keys(stud)){
console.log(key);
}
x?.key 返回 1 如果 x.key 存在,否则返回 undefined
Object.hasOwn
,它解决了Object.prototype.hasOwnProperty
的一些问题。 - Sebastian Simon