欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Js中判断一个属性是属于原型函数还是实例属性的方法

程序员文章站 2022-05-07 18:33:33
...

Js中判断一个属性是属于原型函数还是实例属性的方法

 

/**
 * 
 * 检测一个属性是实例属性还是原型属性
 * 检测完成以后,再来作操作
 * 
 */

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');