zoukankan      html  css  js  c++  java
  • js中的对象 函数 原型

    // 关于 Function Object 和 proto prototype
    // 1.每一个对象实例都有一个 proto 属性,这个属性就是指向 对象构造函数的原型.
    let b = new Function();
    console.log(b.proto === Function.prototype); // true
    console.log(Function.prototype); // [Function]
    console.log(Function.prototype.prototype); // undefined

    // 2. Function 是 Object, Object 也是 Function
    console.log(Function instanceof Object); // true
    console.log(Object instanceof Function); // true
    console.log(b instanceof Object); // true
    console.log(b instanceof Function); // true

    // Function 和 Object 区别
    // 1.由 Function 创造出来的实例对象,既是 Object 又是 Function
    // 2.由 Object 创造出来的实例对象, 是 Object,但不是 Function
    let a = new Object();
    console.log(a instanceof Object); // true
    console.log(a instanceof Function); // false

    //
    console.log(a.proto === Object.prototype); // true
    console.log(Object.prototype); // {}
    console.log(Object.prototype.prototype); // undefined

    // 如何形成原型链?
    class A{
    constructor(){
    this.name = 'a';
    }
    sayHi(){
    console.log('this is a say hi!');
    }
    }
    class B extends A{
    constructor(){
    super();
    this.age = 2;
    }
    }

    console.log(A.prototype); // {}
    console.log(B.prototype); // {}

    // 下面演示了 原型链
    // B->A->Object
    let obj = new B();
    console.log(obj.proto === B.prototype); // true;
    console.log(B.prototype.proto === A.prototype); // true
    console.log(A.prototype.proto === Object.prototype);
    console.log(Object.prototype.proto); // null

    console.log(A.proto === Function.prototype); // true
    console.log(B.proto === Function.prototype); // false
    console.log(B.proto.constructor); // [Function: Function]

    // 只有 通过 new A(); 创建的对象的 proto 才指向 A.prototype

    // 疑问: B.proto 到底指向哪?
    console.log(B.proto === A.prototype); // false

  • 相关阅读:
    1136 A Delayed Palindrome (20 分)(回文数)
    1117 Eddington Number (25 分)(简单逻辑)
    1094 The Largest Generation (25 分)(BFS,DFS树的遍历)
    1079 Total Sales of Supply Chain (25 分)(dfs,bfs,树的遍历)
    还原前端代码js.map
    构造表单任意文件上传
    Python搭建HTTP服务
    C# 递归算法
    foreach小结
    判断一个点是否在一个区域中
  • 原文地址:https://www.cnblogs.com/daihanlong/p/9823945.html
Copyright © 2011-2022 走看看