Js中判断一个属性是属于原型函数还是实例属性的方法
程序员文章站
2022-05-07 18:33:33
...
/**
*
* 检测一个属性是实例属性还是原型属性
* 检测完成以后,再来作操作
*
*/
function Person(password) {
this.password = password;
}
Person.prototype.username = 'luohao';
let person = new Person(123);
/**
* 可以访问到实例中的对象,也可以访问到原型中的的对象。
*/
console.log('password' in person);
console.log('username' in person);
console.log(person.hasOwnProperty('username'));
console.log(person.hasOwnProperty('password'));
/**
* 可以通过hasOwnProperty判断一个属性是否是实例的属性
* 但是无法判断一个实例是原型的属性,因为原型的属性在实例中可以访问到
*/
function hasOwnProperty(obejct, prop) {
if (prop in obejct) {
if (obejct.hasOwnProperty(prop)) {
console.log(prop + '是实例的属性');
} else {
console.log(prop + '是原型的属性');
}
} else {
console.log('不存在' + prop + '这个属性');
}
}
hasOwnProperty(person, 'username');
hasOwnProperty(person, 'password');
上一篇: 我有个事情我移植想不明白