JavaScript学习笔记(8.0)
创始人
2024-06-03 16:41:45

改变this指向的三个方式

var obj1={name:"obj1",grtName:function(){console.log("getName1",this.name)
}}obj1.getName()

第一种:call() 

var obj1={name:"obj1",grtName:function(){console.log("getName1",this.name)
}}obj1.getName()var obj2={name:"obj2",grtName:function(){console.log("getName2",this.name)
}}obj1.getName.call(obj2,1,2,3,...,N)  //可以传递N个参数

第二种:apply()

obj1.getName.apply(obj2,[1,2,3...,N])   //只支持两个,且第二个参数是一个数组

第三种:bind()

//改变this指向为函数的第一个参数,不会自动执行函数
var newFun=obj1.getName.bind(obj2,1,2,3,....) 
console.log(newFun)
newFun()   //手动执行

let和var的区别

(1)let不能在未定义前使用,var可以。

(2)let不能重复定义,var可以。

(3)let是块级作用域,而var的作用域更广

const也和var有这三点的不同

const和let的区别

(1)const定义的是常量,let定义的是变量

箭头函数

//原始
var test1=function(){console.log("11111")
}//箭头函数
var test2=()=>{console.log(2222)
}
test1()
test2()

箭头函数的特点

1.()可以省略,但是在只有一个形参参数的情况下

//省略写法
var test = a =>{
console.log(111,a)}//原始
var test = (a) =>{
console.log(111,a)}

2.{}可以省略,只有一句代码的时候(只有返回值)

var test = a =>{
return 100*a
}//省略写法var test = a => 100*a
var list=["aaa","bbb","ccc"]
var newlist=list.map(function(item){
return `
  • ${item}
  • `})console.log(newlist.join(""))//省略写法 var list=["aaa","bbb","ccc"] var newlist=list.map(item=> `
  • ${item}
  • `)console.log(newlist.join(""))

    3.没有arguments(伪数组)

    var test=function(){
    console.log(arguments[0],arguments[1],arguments[2])
    }
    test(1,2,3)//伪数组转换
    Array.from(arguments)

    4.箭头函数没有this,

    箭头函数this是父级作用域的

    ES6的解构赋值

    var arr=["xiaoming","zhangsan","lisi"]
    let[x,y]=arr
    console.log(x,y)//不能直接拿最后一个值,而是以占位的形式依次取值
    //交换两个变量的值
    var a=10
    var b=20
    var[b,a]=[a,b]
    console.log(a,b)   //交换后a=20,b=10
    //多维数组的获取
    var arr2=[1,2,[3,4,[5]]]var[q,w,[e,r,[t]]]=arr2console.log(t)  //5
    var obj={
    name:"zhangsan",
    age"15",
    place:"dongbei"
    }
    let{name,age,place:myplace}=obj
    document.write(name)
    document.write(age)
    document.write(myplace)
    var obj2={
    name:"zhangsan",
    age:"15",
    place:{
    province:"beijing",
    city:"China"},
    hobby:[1,2,3]
    }var {
    name,
    age,
    place:{
    province,
    city},
    hobby:[m,n,l]
    }=obj2console.log(name,age,province,city,m,n,l)

    相关内容

    热门资讯

    脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
    猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
    demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
    苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...