ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
# 检测对象是公有还是私有 <br> ## 1.in关键字 >[danger]**判断该属性是否存在对象中** 无论判断的成员是属于当前实例对象(私有)还是属于其原型对象(公有)的,in都返回**true**,如果都不存在,则返回**false**。 ***** <br> ~~~javascript //构造函数 function Person(name,age) { this.name = name;/*静态成员,私有属性*/ this.age = age; } // 把方法放在原型上 Person.prototype = { constructor:Person,/*修改this指向*/ say:function () {/*原型属性,公有属性*/ console.log("世界,你好"); }, }; // 实例化对象 var per = new Person("wc",3); console.log(per); console.log("name" in per);/* true*/ console.log("say" in per);/* true*/ console.log("sex" in per);/*false*/ ~~~ ***** ## 2.hasOwnProperty属性 >[danger]判断该对象是否存在实例对象(私有)中,不能访问原型对象(公有),存在返回true ,不存在返回false ***** ~~~javascript console.log(per.hasOwnProperty("name"));/*true*/ console.log(per.hasOwnProperty("sex"));/*false 实例对象中不存在这个属性*/ console.log(per.hasOwnProperty("say"));/*say 是公有的,不能访问得到,所以返回的是false*/ ~~~