IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> 箭头函数与普通函数区别 -> 正文阅读

[JavaScript知识库]箭头函数与普通函数区别

在ES5中,如果想要知道this指向谁,就要看当前的这个函数是在哪里调用的,函数的?this?关键字在?JavaScript?中的表现略有不同,此外,在严格模式和非严格模式之间也会有一些差别。

js中的this指


在事件中调用,this就是当前触发事件的元素
在对象中调用,this就是当前对象
在全局调用,this就是window

在面向对象中,this就是当前用`new`关键字创建出来的对象

箭头函数中的this指向

在普通函数中的this:

1. this总是代表它的直接调用者(js的this是执行上下文), 例如 obj.func ,那么func中的this就是obj

2.在默认情况(非严格模式下,未使用 'use strict'),没找到直接调用者,则this指的是 window (约定俗成)

3.在严格模式下,没有直接调用者的函数中的this是 undefined

4.使用call,apply,bind(ES5新增)绑定的,this指的是 绑定的对象

箭头函数与普通函数区别

1.箭头函数是匿名函数,箭头函数不能作为构造函数使用 ,不能使用new 方法
2.箭头函数的this,始终指向父级上下文
3.箭头函数没有原型属性
4.箭头函数没有Arguments
5.箭头函数不能使用call apply bind 直接修改它的this指向 但可以用他们传参

普通函数的arguments和类数组转换成数组

arguments转换成数字的方法

1.比较常用的方法

function argument() {
     var arr = [];
    for (var i = 0; i < arguments.length; i++) {
        arr.push(arguments[i]);
    }
    return arr;
}

2.Array.prototype.slice.call()

function arguments() {
    console.log(arguments instanceof Array); // false 
    var argsArray = Array.prototype.slice.call(arguments);
    console.log(argsArray instanceof Array); // true 
}

3.扩展运算符,因为它是一个对象

function argument () {
    console.log(arguments instanceof Array); // false 
    var argsArray = [...arguments ];
    console.log(argsArray instanceof Array); // true 
}

4.Array.from(); ES6里的方法

function argument () {
    console.log(arguments instanceof Array); // false 
    var argsArray = Array.from(arguments);
    console.log(argsArray instanceof Array); // true 
}

类数组转换成数组的方法

1.ES6语法?Array.from(arr)

2.用Array.prototype.slice.call(elems)方法转化为数组 或?[].slice.call(elems)

3.用[ ...elems ]方法转化为数组

4.用Array.prototype.forEach.call(elem,callback)方法

5.用Array.prototype.forEach.apply(elem,[callback])方法

6.用bind方法

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-10-04 12:46:00  更:2021-10-04 12:47:29 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/18 21:39:14-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码