JS改变this指向、ES6新属性

87 阅读1分钟

JS改变this指向

call方法

函数名.call(this指向的新对象, 参数1, 参数2)
对象方法.call(this指向的新对象, 参数1, 参数2)

image.png

apply方法

函数名.apply(this指向的新对象, [参数1, 参数2] )
对象方法.call(this指向的新对象,[参数1, 参数2] )

image.png

bind方法

var 新函数=函数名.bind(this指向的新对象)
新函数(参数)

image.png

示例---充电宝

image.png

ES6新特性

let和const关键字

  • let :块变量
  • const :常变量
  • 区别: 1.没有变量提升,没有预解析

image.png 2.let 和 const 不允许重复声明变量

image.png 3. let 和 const 声明的变量会被所有代码块限制作用范围

image.png 4. let 和 const 的区别

image.png

箭头函数

  • 原:var fn=function(){}
  • 现:var fn=()=>{}
  1. 当参数只有一个时,括号可以省略 var fn=m=>{}
  2. 当赋值语句只有一条时,中括号可以省略 var fn=()=>console.log('')
  3. 当赋值语句只有一条,且是return语句时,中括号和return皆可省略 var fn=m=>100

image.png

image.png

函数传递参数的时候的默认值

ES5: function fn(m){
        m ||100
    }      //表示m的默认参数值为100
ES6:function fn(m=100)

image.png

解构赋值

  • 作用:快速的从对象或者数组中取出成员的一个语法方式
  • 对象:
const obj={
    name='jack'
    age=18
    gender='男'
}
let{name,age,gender} = obj
  • 数组:
const arr=[1,2,3]
let[a,b,c] = arr
  • 函数返回数组
function fn(){
    return [2,3]
}
let a,b;
[a,b]=fn()
console.log(a,b)
//2 3
  • 交换变量

image.png

模板字符串

image.png

image.png

image.png

image.png

展开运算符

  • 数组
let arr=[1,2,3]
let arr1=[4,5]
let arr2=[...arr,...arr1]
let arr3=[...arr,4,5]
console.log(arr2)
//1,2,3,4,5
  • 对象
let obj={
    name:'jack',
    age:18
}
let obj1={
    ...obj,
    gender:'男'
}
console.log(obj1)

image.png

对象字面量简化写法

image.png