JS之理解对象

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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之理解对象的主要内容,如果未能解决你的问题,请参考以下文章

PHP面向对象之选择工厂和更新工厂

JS之理解对象

Java中面向对象的三大特性之封装

js代码片段

浅谈JS面向对象之创建对象

VSCode自定义代码片段12——JavaScript的Promise对象