• 函数分类 调用 this指向 call apply


    函数在js中扮演了几个角色?(函数到底扮演什么角色取决于函数的调用方式)

    1. 构造函数(构造函数主要用来实例化对象)

    2. 普通函数(一般普通函数都是用来实现一个特定的功能)

    3. 作为对象函数可以作为一个普通对象使用

    javascript

    function foo(){

    }

    new foo();//构造函数

    foo();//普通函数

    foo.abc = 123;//作为对象

    函数的产生的方式:

    1、内置函数(内置对象、库函数)

    ​ Object、Array、Date、RegExp、String、Number、Boolean、Error、Function(*Math不是函数,而是对象)

    2自定义函数

    1. 函数声明 (可以先调用后声明)

    2. 函数表达式  :判断条件时,不符合条件的表达式,不会出现占用内存(必须先声明在调用)

    3. new Function() (一般情况下用不到)

    函数调用的方式:

    1、构造函数实例化

    2、普通函数调用

    3、对象方法调用

    4、call 和 apply

    5、函数立即调用(沙箱)

    call/apply的用法

    1、调用函数

    2、改变所调用函数的内部的this指向

    3、借用其他对象的方法

    4、把类数组转成数组

    关于this:

    this到底指向谁取决于函数调用的方式

    // 普通函数(在非严格模式下,this指的是window;在严格模式下,this的值是undefined)

    // 严格模式("use strict"):对语法规则要求更加严格

    this出现的场景:

    1. 普通函数中的this

    2. 构造函数中的this

    3. 原型方法中的this

    4. 实例对象中的this

    5. 定时函数中的this

    6. 事件函数中的this

    何时需要缓存this?this的指向发生改变

    // 对象方法中的this就是方法的调用者

    // 事件函数中的this指的是绑定事件的对象

  • 相关阅读:
    Java进阶——带你入门分布式中的Nginx
    详细介绍Spring Boot 2.0的那些新特性与增强
    Kafka对Java程序员有多重要?连阿里都再用它处理亿万级数据统计
    C#面向对象的三大特性
    汽车租赁系统 封装。继承和多态
    深入C#数据类型小部分第二章
    Java面向对象的三大特征
    SQL Server 存储过程
    一篇文章教你学会基础的HTML
    初步了解Entity Framework
  • 原文地址:https://www.cnblogs.com/first1-you/p/6822041.html
Copyright © 2020-2023  润新知