ECMAScript6 and ECMAScript7Vue.js开发技巧前端开发那些事儿

JavaScript的原型和原型链(四)

2021-07-04  本文已影响0人  自然框架

非常佩服各平台的推送功能,也不知道他们是怎么知道我对原型感兴趣的,这几天各种推送。
看了看,还是挺晕的,发现个问题,越是专业的越是晕。

所以还不如来个外行的看着清晰。所以来一个外行的图:

总图

感觉可以把Object.prototype 看着是一个基类,存放基础的几个方法。

因为 window.Object.prototype.proto 是 null,所以可以作为原型链的起点。

Object 和 Function

Object和Function

似乎好像没啥区别。。。

原型

对比一下原型,可以发现区别。。。

原型链

对比原型链,可以发现 Object 是 Function 的“基类”

Function

那么 Function 是个啥呢?

可以把 Function 本身当做一种方法,可以直接执行一些指令,也可以看做是一个创建过程,创建的结果是啥呢?当然就是 Object 的对象。好吧,我不知道这个应该如何描述。

我们可以用 typeof 验证一下:

function fun1 () {}

console.log(typeof fun1)
console.log(typeof fun1())

验证

fun1的 type 是 Function。
fun1的运行结果,由于没有返回值(return)所以是 undefined。

fun1的原型

首先 fun1 有一个自己的原型,然后原型链指向 Object 的原型。可以看做是一个“继承”的关系。

未完待续。。。

上一篇 下一篇

猜你喜欢

热点阅读