zoukankan      html  css  js  c++  java
  • js中的原型以及原型链

    在js中原型是每个构造函数的属性:

    这个算 js 核心概念的一部分

    var f1 = new Foo();

    对象 f1 的构造函数就是 Foo , f1的原型 __proto__ 就指向构造函数 Foo.prototype

    可以吧代码复制一份在你控制台看看

    function GetNum() {
            alert('1');
        }
        var a=new GetNum;
        console.log(GetNum);
        console.log(a);
        console.log(a.__proto__);
        console.log(GetNum.prototype) ;
        console.log(GetNum.__proto__);
        console.log(GetNum.prototype.__proto__) ;
        console.log(Object.prototype);
        console.log(Object.prototype.__proto__);
    打印出来会看到:
    a.__proto__===GetNum.prototype//true
     
     
    GetNum.prototype.__proto__===Object.prototype//true
     
    Object.prototype.__proto__//null------->对象这个类没有对应的上一级原型链了,他就是原型链的顶端
    打印出来可以看到Object.prototype是这样的:他没有这个__proto__属性
     
     
     
    在看一下这个:这里可以用对象的toStrin方法进行数据类型的判断,
    var getType=Object.prototype.toString;
    console.log(Object.prototype.toString.call(Object));//[object Function]   ---->对象本身也是一个最大的构造函数
    所以说原型就是每个构造函数的__proto__属性,它指向对应的类的prototype,
    例如可以new date=new Date;
    那么date__proto__指向Date这个类的prototype,但是最后还是会指向Object.prototype
    var  date=new Date;
    console.log(date.__proto__);
    console.log(Date.prototype);
    date.__proto__===Date.prototype//true

    原型链就是这样一个一个原型组成的一级一级向上查找的链条。
  • 相关阅读:
    4、linux-grep awk sed and cuf sort uniq join
    2、linux-compress and uncompresse
    1、linux-wget
    Blast 如何使用Blast+(Linux)转载
    1、R-reshape2-cast
    2、R-reshape2-melt
    doc下批处理文件的感想
    关于大数的四则运算
    hadoop分布式安装教程(转)
    关于java中sizeof的问题
  • 原文地址:https://www.cnblogs.com/-youth/p/6373904.html
Copyright © 2011-2022 走看看