this
每一个函数中,都有一个内置的变量this,这个this中存储着当前函数的主人,所以,要知道this是谁,就要通过上下文分析,当前函数的主人是谁。this永远存储的是当前函数的主人。
强制改变this的指向。
call
格式:函数名.call(this指向对象);
参数:原有的参数往后顺延一位。
apply
格式:函数名.apply(this指向对象,数组)
参数:把后续的参数全部放在数组中传入。
bind
预设this的指向
格式:函数名.bind(this指向对象)
返回值:已经改变了this指向的函数。
function show(num1, num2){
alert(this);
alert(num1 + ", " + num2);
}
show.call("hello", 10, 20);//hello 10,20
function show(num1, num2){
alert(this);
alert(num1 + ", " + num2);
}
show.apply("world", [10, 20]);//world 10,20
function show(num1, num2){
alert(this);
alert(num1 + ", " + num2);
}
show.bind("bind")(10, 20);//bind 10,20
let
声明的变量作用域只要遇到大括号就是作用域。
【注】我们把let声明的变量形成的作用域叫做块级作用域