函数的三种角色

函数在整个JavaScript中是最复杂也是最重要的知识:
1.一个函数存在了多面性:

它本身就是一个普通的函数,执行的时候形成私有的作用域(闭包),形参赋值,预解释,代码执行,执行完成后栈内存销毁/不销毁

2.它本身可以作为一个类:它有自己的实例,也有一个叫做prototype属性是自己的原型,它的实例都可以指向自己的原型

3.普通对象:和var obj ={}一样就是一个普通的对象,它作为对象可以有一些自己的私有的属性,也可以通过_proto_找到

Function.prototype

//这三者之间是没有必然关系的

function Fn(){
           var num =500;
           this.x = 100;
       }
        Fn.prototype.getX =function(){
            console.log(this.x);
        }
        Fn.aaa = 1000;
        var f = new Fn;
       f.num //->undefined
       f.aaa //->undefined
       var res =Fn();// _>FN中的this是window
        res = undefined
        Fn.aaa
原文地址:https://www.cnblogs.com/zzzzzzzsy/p/6714219.html