zoukankan      html  css  js  c++  java
  • 函数分类 调用 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指的是绑定事件的对象

  • 相关阅读:
    Eclipse和MyEclipse常出现的错误总结
    JS中的showModelDialog详解和实例
    form中的action,submit="return save()"以及ajax提交方法
    清除上传文件input标签中type="file"的value值
    上传文件时并顺便将文件压缩时出现文件名乱码以及文件内容乱码解决方案
    python 知识
    centos 安装docker
    docker 配置国内镜像
    git 操作命令
    react build dist发布nginx时的配置
  • 原文地址:https://www.cnblogs.com/first1-you/p/6822041.html
Copyright © 2011-2022 走看看