首页 > 代码库 > JS之理解对象

JS之理解对象

1.__proto__

每个对象都有一个__proto__属性,指向该对象的原型对象

<script>        var person = function(name,city){            this.name = name;            this.city =city;           }        person.prototype.showName = function(){            return this.name;           }        var p = new person(pmx,shanghai);        console.log(p.__proto__ == person.prototype);</script>

 

2.isPrototypeOf(obj)用来判断当前对象是否是obj的原型对象

<script>      var person = function(name,city){            this.name = name;            this.city =city;           }        person.prototype.showName = function(){            return this.name;           }        var p = new person(pmx,shanghai);        console.log(person.prototype.isPrototypeOf(p));</script>

3.getPrototypeOf(obj)得到obj的原型对象

<script>      var person = function(name,city){            this.name = name;            this.city =city;           }        person.prototype.showName = function(){            return this.name;           }        var p = new person(pmx,shanghai);        console.log(Object.getPrototypeOf(p) == person.prototype);</script>

 

4.hasOwnProperty用来判断属性是存在于本身还是原型对象中

<script>      var person = function(name,city){            this.name = name;            this.city =city;           }        person.prototype.age = 26;        person.prototype.showName = function(){            return this.name;           }        var p = new person(pmx,shanghai);        console.log(p.hasOwnProperty("name"));        console.log(p.hasOwnProperty("age"));</script>

 

5.in用来判断obj是否有指定属性,不论该属性存在于对象上,还是原型链上

<script>      var person = function(name,city){            this.name = name;            this.city =city;           }        person.prototype.age = 26;        person.prototype.showName = function(){            return this.name;           }        var p = new person(pmx,shanghai);        console.log("name" in p);        console.log("age" in p);</script>

 

JS之理解对象