zoukankan      html  css  js  c++  java
  • js原型和原型链

     js中最重要的两条链作用域链和原型链,作用域链是从上往下,原型链是从下往上。

     1.原型是什么

      1)原型就是一个属性,是构造函数属性,是构造函数制造出来的对象的公共祖先,后面所有对象都会继承原型的属性和方法。

      2)原型也是一个对象,所有实例对象需要共享的属性和方法都会存放在这个对象里面,不需要共享的就放在构造函数里面。

      3)在默认情况下,所有原型对象都会自动获得一个constructor属性,这个属性指向prototype属性所在函数。

    即 Person.prototype.constructor == Person。

     2.prototype和__proto__

      __prototype__ 用来查看原型,是对象的属性,可以查看但是不能修改。

      prototype用来修改原型。

      每个对象都有__proto__属性,但只有函数对象才有prototype属性

     3.任何对象的最终原型都是Object.prototype。

     4.原型链:在JavaScript中每个对象都有一个指向他的原型内部对象的内部链接,每个原型对象又有自己的原型,直到某个对象的原型为null为止,组成这条链的最后一环。

     5.原型对象的作用:原型对象主要作用主要是用于继承。

     6.__proto__ JS在创建对象的时候,都有一个叫做__proto__的内置对象属性,用于指向创建它的构造函数的原型对象。

     7.

    <script>
        //先定义一个构造函数
        function Person(config){
            this.name = config.name;
            this.age = config.age;
            this.sex = function(){
                if (config.sex == 2) {
                    return "女"
                }else{
                    return "男"
                }
            }
        }
        var obj = {
            name : "wang",
            age : 16,
            sex : 2,
        }
        var person1 = new Person(obj);
        console.log(person1)
        console.log(Person.prototype.constructor)//出来的是构造函数Person
        console.log(person1.__proto__)//person1__proto__  和Person.prototype 是一样的
        console.log(Person.prototype)
        console.log(person1.constructor)//构造函数Person
        // Person.prototype.constructor == Person;
        // person1.__proto__ == Person.prototype;
        // person1.constructor == Person;
      // Person.prototype.__proto__ === Object.prototype
      // Object.prototype.__proto__ === null
    </script>

    Object.prototype也有proto属性,但是null。因为处于原型链的顶端。

    8.所有的函数构造器也都是一个普通JS独享,可以给构造器添加或者删除属性等。同时也继承了Object.prototype上的所有方法。

      

  • 相关阅读:
    https://archive.ics.uci.edu/ml/datasets.php
    实战教程 :使用Python和keras进行文本分类(上)(重要)
    洛谷 P1073 最优贸易
    P2278 [HNOI2003]操作系统
    洛谷P2024 食物链
    模板
    我的博客
    mysql一条sql把表中的男改为女,女改为男
    树的度和结点数的关系
    Spider实例详解
  • 原文地址:https://www.cnblogs.com/wangzheng98/p/11191714.html
Copyright © 2011-2022 走看看