• JS中函数的三种角色


    函数的三种角色

    • 普通函数
    • 普通对象

    所有函数数据类型都是Function类的一个实例
    所有函数本身也是一个对象, _ protp _ 指向Function的原型

    函数本身也会有一些自己的属性
    length: 形参的个数
    name: 函数名
    prototype: 类的原型, 在原型上定义的方法都死当前这个类实例的公有方法
    _ proto _: 把函数当作一个普通的对象, 指向Function这个类的原型

    函数在整个JS种是最复杂也是最重要的知识:

    • 一个函数存在了多面性
      • 普通函数: 执行的时候形成私有的作用域(闭包), 形参赋值, 预解释, 代码执行, 执行完成后栈内存销毁/不销毁
      • 类: 它有自己的实例, 也有一个叫做prototype属性是自己的原型, 他的实例都可以指向自己的原型
      • 普通对象: 和 var obj={}种的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; // Fn中的this是f实例
    console.log(f.num);  // undefined
    console.log(f.aaa); // undefined
    
    var res = Fn(); // Fn中的this是window
    console.log(res); // undefined
    console.log(x); // 100
    
    console.log(Fn.aaa); // 1000
    

    Function.prototype是函数数据类型的值, 但是相关操作和之前的一模一样 -> Empty/ anonymous(匿名)

  • 相关阅读:
    Region-Based Segmentation
    不同特征值对应的特征向量
    Edge Linking
    Canny Edge Detector
    度量与非度量方法
    Edge detection using LoG
    Sobel算子
    Edge Model
    Laplacian算子
    图像处理中的一阶导数与二阶导数
  • 原文地址:https://www.cnblogs.com/xiaoxu-xmy/p/13645082.html
Copyright © 2020-2023  润新知