美文网首页WEB前端程序开发
js里面函数的三种角色

js里面函数的三种角色

作者: 独立行走的蚂蚁 | 来源:发表于2019-07-07 13:28 被阅读0次

    1、函数本身也有一些自己的属性
    // length: 行参的个数
    // name: 函数名
    // prototype: 类的原型,在原型上定义的方法,都是当前Fn这个实例的公有的方法。
    // _ proto _ 把函数当做一个普通的对象,指向Function这个类的原型

    2.一个函数存在多面性
    (1)、"普通函数":本身就是一个普通的函数,执行的时候行成私有的作用域(闭包),进行形参赋值、预解释、代码执行,执行完成后栈内存销毁或者不销毁;
    (2)、"类": 它有自己的实例,也有一个叫做prototype的属性是自己的原型,它的实例都可以指向自己的原型;
    (3)、"普通对象": 和let obj = {}一样,作为一个普通的对象,作为普通的对象,有一些自己私有的属性,也可以通过 _ proto _找到Function.prototype

    // 上面三者之间没有必然的联系
    Function.prototype是函数数据类型的值,操作和之前的一模一样

      function Fn () {
        var num = 100;
        this.x = 200;
      }
    
      let f = new Fn; //Fn里面的this是f
      Fn.aaa = 300;
      f.num // undefined
      f.aaa // undefined 
      let res =   Fn(); // Fn里面的this是window
      res // undefined
      Fn.aaa // 300
     
    

    相关文章

      网友评论

        本文标题:js里面函数的三种角色

        本文链接:https://www.haomeiwen.com/subject/zgyttqtx.html