美文网首页
JavaScript中Function和Object

JavaScript中Function和Object

作者: HermitCarb | 来源:发表于2017-10-12 11:14 被阅读0次

其实下面的东西只要懂原型链就很容易想通。

>Function.__proto__ === Object.__proto__  // 1
true
>Function.prototype === Function.__proto__  // 2
true
>Function.prototype === Object.__proto__  // 3
true
>Object.prototype === Object.__proto__  // 4
false
>Object.prototype === Function.prototype.__proto__  // 5
true
>Object.prototype === Object.__proto__.__proto__  // 6
true

Function和Object本质上都是函数,也就是说:

  • (1) 它们作为构造器是Function的直接子类,
  • (2) 它们作为对象是又都是Object的子孙类。

而原型链中有:

  • (3) 构造器的prototype(即原型)中定义可以被对象继承的属性,实例对象的__proto__指向其构造器的原型。

所以,

  1. 基于(1)(3),Function.__proto__Object.__proto__都指向Function.prototype,可得代码中1、2、3的结果
  2. 基于(1),Object直接继承自Function并不是Object,所以可得4的结果
  3. 基于(2)(3),可得Object.prototype === Object.__proto__.[__proto__.]...__proto__。事实上Function的原型是Object的实例。所以可得代码中5、6的结果.

相关文章

  • JavaScript中Function和Object

    其实下面的东西只要懂原型链就很容易想通。 Function和Object本质上都是函数,也就是说: (1) 它们作...

  • js原型与原型链

    一. 普通对象与函数对象 JavaScript 中,分为普通对象和函数对象,Object ,Function 是J...

  • First Class function() object

    In javascript, a function is also an object, it has prope...

  • 原型与原型链

    JavaScript 中,万物皆对象!但对象也是有区别的。分为普通对象和函数对象,Object ,Function...

  • 十三、扩展内建对象

    在JavaScript中内建对象的构造器函数(例如Array、String、Object、Function)都可以...

  • Javascript Prototype原型

    首先我们要知道,在Javascript中,所有的函数function和对象object都有一个属性叫做原型,不同的...

  • Function和Object 应该知道的

    javascript有5种基础的内建对象(Fundamental Objects),Object、Function...

  • Underscore源码阅读:bind

    bind函数 参考:JavaScript深入之bind的模拟实现 bind(function, object, *...

  • Function() 和 Object()

    对应代码 打印结果: 一个Foo类型的对象: 展开: foo对象的 [[prototpye]] 属性指向Foo.p...

  • 前端

    1.javascript的typeof返回哪些数据类型 object number function boolea...

网友评论

      本文标题:JavaScript中Function和Object

      本文链接:https://www.haomeiwen.com/subject/fghslxtx.html