美文网首页
函数原型

函数原型

作者: _blank_myy | 来源:发表于2017-05-04 20:26 被阅读0次

prototype和_proto_

基于两个基本概念:

1.prototype是函数(function) 的一个属性, 它指向函数的原型.

2.__proto__是对象的内部属性, 它指向构造器的原型, 对象依赖它进行原型链查询,instanceof 也是依赖它来判断是否继承关系.

prototype只有函数才有, 其他(非函数)对象不具有该属性. 而__proto__是对象的内部属性, 任何对象都拥有该属性.

可以得出一些结论:

1.所有的构造器都继承于Function.prototype, 甚至包括根构造器Object及Function自身。所有构造器都继承了Function.prototype的属性及方法。如length、call、apply、bind(ES5)等。

因为构造器是对象也是函数,有_proto_属性,指向构造器原型,而函数的原型就是Function.prototype,由此还可以推出Function._proto_===Function.prototype

2.函数也是对象, 函数是一等公民.

Function.prototype.__proto__ ===Object.prototype  

Function.prototype的__proto__属性指向对象的原型,由概念2,说明Function.prototype是Object构造出来的。Function.prototype继承于Object.prototype。同时发现Object有三个身份:构造器、函数、对象。再次证明了结论1.

3.究竟它们是从哪里来的

Object.create(null)可以创建一个没有原型的对象。如下:

Object.prototype.__proto__ == Object.create(null).__proto__

即为Object.prototype.__proto__ ===null

相关文章

  • C初阶6:函数

    1. 函数原型 1.1 函数原型是什么? 函数头以;结尾,构成函数原型。 1.2 函数原型怎么用? 函数原型通常放...

  • 原型链

    原型链函数的原型对象prototype函数都有prototype属性指向函数的原型对象【只有函数根除外】原型对象的...

  • 3.面向对象01

    1.原型(对象) (1).概念: 原型是所有函数都有属性 (2)获取原型: (a).获取函数的原型: 函数名...

  • 原型链

    原型继承 构造函数继承? 函数对象 原型prototype

  • 图形解析【原型链】相关概念

    一、原型链概念: 函数的原型对象(prototype)原型对象的构造函数(constructor)内部原型(_pr...

  • js 原型域原型链

    /* * 原型(prototootype)/ 原型链(__proto__) * * [函数] * 普通函数,类(...

  • 继承的三种方式

    原型继承: 原型继承可以解决函数原型中属性复用的问题,下级函数一旦继承上级函数的原型,下级函数的实例就可以使用自身...

  • 原型链

    原型链图示 对象拥有原型和构造函数--proto--   原型constructor   构造函数 只有函...

  • javascirpt复习

    实例中访问构造函数原型的指针,指向的是构造函数原型,不是构造函数; 所以重写构造函数原型对象,【实例对象】访问还是...

  • 原型对象心得

    原型 prototype就是“原型”的意思。每个函数都有原型,原型是一个对象。 找原型对象有2个办法: 构造函数名...

网友评论

      本文标题:函数原型

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