prototype 与 proto的区别
函数a本身就是一个普通的函数,执行的时候形成私有的作用域(闭包),形参赋值,预解释,代码执行,执行完成后栈内存销毁/不销毁。
<code>
function a(){
console.log(1)}
dir(a)
function a()
arguments:null
caller:null
length:0
name:"a"
prototype:Object
proto:function ()
[[FunctionLocation]]:VM587:1
[[Scopes]]:Scopes[1]
</code>
然后使劲点击proto 原来他的构造器是object
因为有了函数的proto构造器 所以可以使用apply call bind
然后使劲点击prototype 原来他的构造器是function Object(){}
因为他的原型是obj 所以可以a.fn=b这样赋值
总结 普通函数 类 对象,所以ES6的class 就是以前函数的类属性
网友评论