首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Function和Function.prototype对象在原型链中的什么位置?

Function和Function.prototype对象在原型链中的位置如下:

  1. Function对象是所有函数的构造函数,它本身也是一个函数。在原型链中,Function对象位于所有函数对象的顶端,即它是其他函数对象的直接或间接原型。
  2. Function.prototype对象是Function构造函数的原型对象,它包含了所有函数对象共享的属性和方法。在原型链中,Function.prototype对象位于所有函数对象的直接原型,即其他函数对象的原型指向Function.prototype对象。

具体来说,原型链中的关系如下:

  • 所有函数对象的原型指向Function.prototype对象。
  • Function.prototype对象的原型指向Object.prototype对象。
  • Object.prototype对象的原型为null,表示原型链的顶端。

因此,Function对象和Function.prototype对象在原型链中的位置如下: Function.prototype --> Object.prototype --> null

在JavaScript中,通过原型链的机制,可以实现函数的继承和共享属性方法的效果。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

说说JS中的原型对象和原型链

理解原型对象(有些文章简称为原型)和原型链,是理解JS的重要一环。下面是笔者对JS中原型的理解, 函数对象 俗话说,JS中万物皆对象。函数也是一个对象,只不过函数是在特定环境中执行代码的对象。...什么是函数对象?每声明一个函数,此函数在JS执行解释时都会被当作一个对象来维护,这就是函数对象。...千言万语不如一幅图: 原型链 由上节我们可以知道,原型对象上的属性和方法被所有实例所共享的。...不说话看图: 由此,可得到下面的关系图: 思考 原型链中的关系图其实还缺少一环,就是内置函数Function。...Function比较特殊,有兴趣的可以去研究下Function与Object的关系。 本文是笔者对原型对象和原型链的理解,如有错误或不足的地方,欢迎指正。

9210

js对象和原型、原型链的关系

判断方式有两种,但都是根据构造函数的prototype是否在原型链上来判断的:instanceof: 用于测试构造函数的prototype属性是否出现在对象的原型链中的任何位置语法:object instanceof...test.prototype在testObject的原型链上 testObject instanceof Function // false Function.prototype 不在testObject...Object.prototype在testObject的原型链上原型链的终点: Object.prototypeObject.prototype是原型链的终点,所有对象都是从它继承了方法和属性。...(Function.prototype) === Object.prototype // true原型链用来做什么?...它们只能通过foo.obkoro1和foo.koro来访问。原型对象改变,原型链下游获取的值也会改变上面那个例子中的foo1.test的值是什么?

1.5K20
  • 原型链中的函数和对象

    这是我参与「掘金日新计划 · 6 月更文挑战」的第6天,点击查看活动详情 __ proto__ 最近在看高程4,原型链肯定是绕不过的,本瓜之前一直认为,只要记住这句话就可以了: 一个对象的隐式原型(__...proto__)等于构造这个对象的构造函数的显式原型(prototype) 确实,所有对象都符合这句真理,在控制台打印一试便知: const str = new String("123") str....__proto__ === Function.prototype 所以,不管你怎样通 __proto__ 隐式原型向上找,最终都只能找到 Function,而 Function 的隐式原型等于它的显式原型...__proto__=== Object.prototype // true 所有构造函数的显式原型的隐式原型 等于 Object 的显式原型!! ---- 理解 为什么要这样设定呢??...这样原型链查找不是有两套逻辑吗?

    40010

    JS中的原型和原型链

    ---- 那么要点说完了,我们就根据这些要点来理解原型和原型链。 原型 我们先来看一个原型的例子。...这样每个对象都可以使用prototype属性里面的showName、showAge方法,并且节省了不少的资源。 ---- 原型链 理解了原型,那么原型链就更好理解了。...下面这段话可以帮助理解原型链 根据要点5,当试图得到一个对象的属性时,如果这个对象本身不存在这个属性,那么就会去它构造函数的’prototype’属性中去寻找。...这就是原型链,fn能够调用Object.prototype中的方法正是因为存在原型链的机制。...另外,在使用原型的时候,一般推荐将需要扩展的方法写在构造函数的prototype属性中,避免写在_ proto _属性里面。

    1.8K21

    JS中的原型和原型链

    这意味着我们可以把那些公用的属性和方法,直接定义在prototype对象属性上。 prototype就是调用构造函数所创建的实例对象的原型(proto)。...js在创建对象的时候,都有一个叫做proto的属性,用于指向它的函数对象的原型对象prototype。 prototype可以让所有的对象实例共享它包含的属性和方法。...原型链 每一个对象都可以有一个原型,这可原型还可以有它自己的原型,以此类推,就形成了原型链。...查找一个对象的属性或方法的时候,如果这个对象中没有这个属性或者方法,那就会在这个对象的原型对象中去找,以此类推,直到原型链结束。..._proto_ _proto_是原型链查询中实际用到的,指向构造函数的原型对象,他是对象独有的。对象._proto_ = 构造函数.prototype。 在js中,万物皆是对象,函数也是对象。

    1.5K10

    js中的原型和原型链

    ​一、原型 1、prototype和constructor 在js中每个函数(非箭头函数,一般关于原型的有关知识我们都只考虑构造函数)都会拥有一个 prototype 属性,该属性值是一个对象...__proto__) // true 二、原型链 原型链:《JavaScript高级程序设计》中的描述是:每个构造函数都有一个原型对象,如果该原型是另一个类型的实例呢?...那就意味着这个原型本身有一个内部指针指向另一个原型,相应地另一个原型也有一个指针指向另一个构造函数。这样就在实例和原型之间构造了一条原型链。这就是原型链的基本构想。...原型链中的查找机制:实例对象上找不到指定属性,就从该原型对象上找,如果还是找不到就到该原型对象上的原型上去找,。...注意点:通过现代浏览器的操作属性的便利性,可以改变一个对象的 [[Prototype]] 属性,这种行为在每一个 JavaScript 引擎和浏览器中都是一个非常慢且影响性能的操作,使用这种方式来改变和继承属性是对性能影响非常严重的

    1.1K00

    JS中的面向对象、原型、原型链、继承总结大全

    补充: js中说一切都是对象,是不完全的,在js中6种数据类型(Undefined,Null,Number,Boolean,String,Object)中,前五种是基本数据类型,是原始值类型,这些值是在底层实现的...Person.prototype.constructor = Person; 原型模式就是不必在构造函数中定义实例的属性和方法,而是将属性和方法都添加到原型对象中。...、Firefox、Safari等浏览器中在每个对象身上支持一个__proto__属性,指向的就是构造函数的原型对象。...继承 什么是原型链 ECMA中继承的主要方法就是通过原型链,主要是一个原型对象等于另一个类型的实例,由于实例内部含有一个指向构造函数的指针,这时候相当于重写了该原型对象,此时该原型对象就包含了一个指向另一个原型的指针...在实际开发中,如果原型对象有很多方法,往往我们可以使用字面量的形式,重写原型,但是需要手工指定constructor属性 function Person(name, age) { this.name

    1.4K22

    JavaScript中的显示原型和隐形原型(理解原型链)

    显式原型:prototype 隐式原型:__proto__ 1.显式原型和隐式原型是什么?...在js中万物皆对象,方法(Function)是对象,方法的原型(Function.prototype)是对象,对象具有属性(__proto__)称为隐式原型,对象的隐式原型指向构造该对象的构造函数的显式原型...方法(Function)是一个特殊的对象,除了和其他对象一样具有__proto__属性以外,它还有一个自己特有的原型属性(prototype),这个属性是一个指针,指向原型对象。...构造函数function person本质上是由Function构造函数创建的,它是Function的一个实例。原型对象本质上是由Object构造函数创建的。...,所以他的__proto__指向Function.prototype; Function.prototype的__proto__指向其构造函数Object的prototype; Object.prototype

    3.2K30

    js对象和原型、原型链的关系_2023-03-02

    判断方式有两种,但都是根据构造函数的prototype是否在原型链上来判断的: instanceof: 用于测试构造函数的prototype属性是否出现在对象的原型链中的任何位置 语法:object instanceof...test.prototype在testObject的原型链上 testObject instanceof Function // false Function.prototype 不在testObject...Object.prototype在testObject的原型链上 原型链的终点: Object.prototype Object.prototype是原型链的终点,所有对象都是从它继承了方法和属性。...Function.prototype Object.getPrototypeOf(Function.prototype) === Object.prototype // true 原型链用来做什么?...它们只能通过foo.obkoro1和foo.koro来访问。 原型对象改变,原型链下游获取的值也会改变 上面那个例子中的foo1.test的值是什么?

    57120

    彻底搞懂JS原型与原型链

    说到JavaScript的原型和原型链,相关文章已有不少,但是大都晦涩难懂。本文将换一个角度出发,先理解原型和原型链是什么,有什么作用,再去分析那些令人头疼的关系。...图片二、原型和原型链是什么上面我们说到对象就是属性(property)的集合,有人可能要问不是还有方法吗?其实方法也是一种属性,因为它也是键值对的表现形式,具体见下图。...现在我们已经初步理解了原型和原型链,到现在大家明白为什么数组都可以使用push、slice等方法,函数可以使用call、bind等方法了吧,因为在它们的原型链上找到了对应的方法。...我们来看一下MDN上对于instanceof运算符的描述:instanceof运算符用于测试构造函数的prototype属性是否出现在对象的原型链中的任何位置也就是说instanceof操作符左边是一个对象...__proto__ === Function.prototype总结一下:instanceof运算符用于检查右边构造函数的prototype属性是否出现在左边对象的原型链中的任何位置。

    2.4K30

    彻底弄懂JS原型与原型链

    说到JavaScript的原型和原型链,相关文章已有不少,但是大都晦涩难懂。本文将换一个角度出发,先理解原型和原型链是什么,有什么作用,再去分析那些令人头疼的关系。...图片二、原型和原型链是什么上面我们说到对象就是属性(property)的集合,有人可能要问不是还有方法吗?其实方法也是一种属性,因为它也是键值对的表现形式,具体见下图。...现在我们已经初步理解了原型和原型链,到现在大家明白为什么数组都可以使用push、slice等方法,函数可以使用call、bind等方法了吧,因为在它们的原型链上找到了对应的方法。...我们来看一下MDN上对于instanceof运算符的描述:instanceof运算符用于测试构造函数的prototype属性是否出现在对象的原型链中的任何位置也就是说instanceof操作符左边是一个对象...__proto__ === Function.prototype总结一下:instanceof运算符用于检查右边构造函数的prototype属性是否出现在左边对象的原型链中的任何位置。

    1.1K40

    【前端芝士树】Javascript的原型与原型链

    为什么会出现原型和原型链的概念 1994年,网景公司(Netscape)发布了Navigator浏览器0.9版,但是刚开始的Js没有继承机制,更别提像同时期兴盛的C++和Java这样拥有面向对象的概念。...在实际的开发过程中,工程师们发现没有继承机制很难解决一些问题,必须有一种机制能将所有的对象关联起来。...,引入了proto和原型链的概念解决继承的问题。...__proto__ === Object.prototype; 前面三项已经形成了一个原型链,那么后面代码中Person和Object的__proto__都是Function.prototype呢?...ok, 所以明白为什么Number、String、Array这样的对象实例能继承到Object的属性以及原型链是怎么一回事了吧。 参考文章 最详尽的 JS 原型与原型链终极详解,没有「可能是」。

    23820

    JS基础-01:原型了解

    概要内容 原型 总结 ---- 在接触JS之前,我工作过程中基本都是采用Java、C#、C++开发,也就是面向对象编程,对于类、继承都很熟悉,所以在构建数据结构的时候,就会下意识的采用类来定义结构,...而使用JS开发的时候,创建可以通过new 方法名来创建对象,定义属性和方法放到不同位置,会出现属于类的、属于实例的还是属于原型的?...】独有的 prototype 属性 是【函数】独有的 函数也是一种对象,所以也具有__proto__、constructor 属性 总结:数据结构定义 实例属性:在构造方法中定义,通常用【this.名称...} 复制代码 ---- 启发:JS 是一门动态语言,了解到原型链概念,属性和方法如果自身没有就去原型上找,如果原型上面没有就依次往上找,直到找到或者找不到。...由此就知道为了性能,为什么前端业界大佬,都不使用面向对象编程而采用函数式编程(案例:vue2.x 的vue还采用class new出实例,vue3.x 就都采用常用函数式编程了)

    27900

    彻底深刻理解js原型链之prototype,__proto__以及constructor(二)

    为了关系图更加直观和清晰,隐去了一些引用线路,其中: 圆形代表对象的名字 方形代表属性名 实线代表对象的分界 虚线代表引用 菱形代表基本值 [git] 原型链是单链,只往一个方向流向,没有回路 只有Function...的proto指向自己的prototype,这也向我们解释了为什么Function.prototype类型是function 我们通过proto只能获取到原型对象中的方法和属性,所以persion1通过原型链是获取不到...通过图我们可以简单理解,拥有原型对象属性的对象是函数对象,否则为普通对象 原型链是有开始和尽头的,开始于null,结束于普通对象 所有的函数对象都是Function以new的方式创造出来了,包括Function...自己且每个函数对象的proto都指向了Function.prototype Object是所有对象的父类,我们也可以称之为基类,不过不要纠结于叫什么,因为我们通过图可以看到每一个对象(不管是原型对象还是普通对象还是函数对象...下面的教程,我们会着重研究下原型链在实际的应用! 作者:宜信技术学院 刘晓敏

    99910

    彻底深刻理解js原型链之prototype,proto以及constructor(二)

    原型链是单链,只往一个方向流向,没有回路 只有Function的proto指向自己的prototype,这也向我们解释了为什么Function.prototype类型是function 我们通过proto...只能获取到原型对象中的方法和属性,所以persion1通过原型链是获取不到Persion的myName属性,但是我们可以通过原型对象的constructor来获取或者修改Persion的属性(这点太给力了...通过图我们可以简单理解,拥有原型对象属性的对象是函数对象,否则为普通对象 原型链是有开始和尽头的,开始于null,结束于普通对象 所有的函数对象都是Function以new的方式创造出来了,包括Function...自己且每个函数对象的proto都指向了Function.prototype Object是所有对象的父类,我们也可以称之为基类,不过不要纠结于叫什么,因为我们通过图可以看到每一个对象(不管是原型对象还是普通对象还是函数对象...下面的教程,我们会着重研究下原型链在实际的应用!

    73910

    图解JavaScript对象原型与原型链

    探索技术艺术与国学之美 原文链接:http://www.shuaihuajun.com/article/javascript-prototype-chain/ 使用颜色、形状可视化Javascript中抽象的原型链概念...: 橙黄色实心代表函数,函数是可执行的对象; 橘红色圈圈代表prototype属性,且总是存在于函数对象中; 蓝紫色带箭头线段代表原型链的走向; 蓝绿色实心代表普通对象 圈圈+实心组合形式的含义: 橘红色圈圈...__proto__ === Function.prototype // true 内置构造函数Function的原型和其它函数一样,也是Function.prototype,这就像是自己的原型就是自己身上的一个部分...的特殊之处在于,它是可执行的函数对象,不是普通对象: typeof Function.prototype // "function" 让我觉得JS在强行自圆其说的一点是,虽然Function.prototype...__proto__ === Object.prototype // true 为什么Function.prototype作为一个函数,它的原型不应该是Function.prototype自身吗,规范就是这么规定的

    55320

    深入理解javascript中的原型原型的概念使用原型给对象添加方法和属性使用原型对象的属性和方法原型的陷阱小结

    ---- 原型的概念 真正理解什么是原型是学习原型理论的关键。很多人在此产生了混淆,没有真正理解,自然后续疑惑更多。...Paste_Image.png ---- 使用原型对象的属性和方法 我们使用原型的对象和方法不会在直接在构造函数上使用,而是通过构造函数new出一个对象,那么new出来的对象就会有构造函数原型里的属性和方法...其实很好理解,javascript中对象是通过引用传递的,原型对象只有一份,不是new出一个对象就复制一份,所以我们对原型的操作和更新,会影响到所有的对象。这就是原型对象的实时性。 ?...原型的陷阱 原型在使用的时候有一个陷阱: ** 在我们完全替换掉原型对象的时候,原型会失去实时性,同时原型的构造函数属性不可靠,不是理论上应该的值。** 这个陷进说的是什么呢?...对象的自身属性搜索的优先级比原型的属性要高 proto属性的神秘连接及其同prototype的区别 prototype使用中的陷阱

    4.3K30

    一张图带你搞懂Javascript原型链关系

    __proto__ === Function.prototype(图中线条b) ? 这是原型链中第一个特殊点。...在查找对象成员时,若对象本身没有该成员,则会到原型链中查找。 ? 在上图和知识总结中我们看到: 自定义对象的__proto__指向自定义函数的原型。...同样的,函数 -> Function原型 -> Object原型 -> null, 也形成了原型链。当我们在函数身上调用一个方法或属性时,根据原型链的查找规则,会一直层层向上查找到null。...(不包括Object原型对象自身) constructor 原型中的constructor指向函数本身: ? 思考 Function原型上都有什么? 执行下列代码,创建一个普通该函数。...:arguments、caller、以及这俩属性的getter和setter; 最后还有对象:__proto__指向他的构造函数原型(也就是Object.prototype) Object原型上都有什么

    95340
    领券