• javascript中Function与Object


    1、 先来一段代码:

    console.log(Function); // function Function() { [native code] }
    console.log(Object); // function Object() { [native code] }
    
    console.log(Function.prototype); // function () {}
    console.log(Object.prototype); // Object {}
    
    console.log(Function.__proto__); //function () {}
    console.log(Function.__proto__.__proto__); // Object {}
    console.log(Function.__proto__.__proto__.__proto__); // null
    
    console.log(Object.__proto__); //function () {}
    console.log(Object.__proto__.__proto__); // Object {}
    console.log(Object.__proto__.__proto__.__proto__); // null

    console.log(Function.constructor === Function); // true
    console.log(Object.constructor === Function) // true

     结论:

      a、构造器Function的构造器是它自身,因此:Function.constructor === Function;构造器Object的构造器是它自身,因此:Object.constructor === Function;ps:所有构造器的constructor都指向Function,Function是一个顶级函数;

      b、构造器Function的__proto__是一个匿名空函数function(){};

      c、匿名空函数function(){}的__proto__指向Object的prototype;

      d、Object的__proto__指向Function的prototype,也就是匿名空函数function(){};

    Object继承自己,Funtion继承自己,Object和Function互相是继承对方,也就是说Object和Function都既是函数也是对象。这一点很特别。所有的函数都是对象,可是并不是所有的对象都是函数。

     来自知乎:

    Object.prototype是所有对象的根源
    Object.prototype只是挂载在Object函数对象上
    Function.prototype构造自Object.prototype
    Function.prototype 只是挂载在Function函数对象上
    Object函数和Function函数构造自Function.prototype
    Object字面量对象{}构造自Object.prototype
    Object字面量对象{}.__proto__(原构造对象) === Object.prototype
    Function函数 和 自定义函数 都继承(构造而成)自Function.prototype
    Function.prototype 和 Function.__proto__(原构造对象)相同
    所以,是先有的Object.prototype,再有的Function.prototype,再有的Function和Object函数对象

  • 相关阅读:
    英文、简繁体中文 IT 词汇对照表
    VB.NET 中的 As New 以及型別指定
    使用 ADO.NET 的 ExecuteScalar 方法返回单一值
    适时调整 SqlDataSource 控件的 DataSourceMode 属性
    ADO.NET 2.0 的并行控制与数据存取冲突侦测
    让 ADO.NET 2.0 的 SqlCommand 和 SqlDataAdapter 合作
    透过 Socket API 让 PDA 和远程 PC 联机
    探讨 .NET 语言的 using statement 与资源释放
    让 user control 中的 Button 也能启用验证
    dotNET 語言中可提升效能的邏輯運算子
  • 原文地址:https://www.cnblogs.com/ilovexiaoming/p/6874851.html
Copyright © 2020-2023  润新知