函数的三种角色(2-2)

函数的三种角色

图形原型链最终版29
1、多面性(三者之间没关系)

  • [ ] 普通函数:存在私有作用域(闭包),形参,预解释,代码执行,执行万栈内存销毁/不销毁
  • [ ] :有自己的实例,有prototype属性,其实例指向自己的原型
  • [ ] 普通对象:和var obj={}一样,有自己私有属性,有_ proto _找到Function.prototpe
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
function Fn(){
var num=100;
this.x=500;
}
Fn.prototype=getX=function(){};
Fn.aaa=1000;
//作为普通函数
var res=Fn();//-->Fn中的this是window
res;//->undefined
//作为类
var f=new Fn;//-->Fn中的this是f
f.num //->undefined
f.aaa //->undefined
//作为普通对象
Fn.aaa;//-->1000;