非常佩服各平台的推送功能,也不知道他们是怎么知道我对原型感兴趣的,这几天各种推送。
看了看,还是挺晕的,发现个问题,越是专业的越是晕。
所以还不如来个外行的看着清晰。所以来一个外行的图:
总图感觉可以把Object.prototype 看着是一个基类,存放基础的几个方法。
因为 window.Object.prototype.proto 是 null,所以可以作为原型链的起点。
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 的原型。可以看做是一个“继承”的关系。
未完待续。。。
网友评论