函数的方法
对象的方法
数组的方法
字符的方法
str.indexOf()
function fn(){}
console.log(fn)
改变this指向
fn.bind()
function fn(){
console.log(this)
}
fn() //window
var obj = {};
obj.show = fn;
obj.show(); //obj
使用bind改变this指向
var obj = {
name:"admin",
show:function(){
console.log(this)
}
}
obj.show() //obj
obj.show.bind("hello")(); //hello
obj.show.bind(123123)(); //123123
继承
var 小A = {
name:"AAA",
show:function(){
console.log(this.name);
}
}
var 小B = {
name:"BBB"
}
小A.show();
小A.show.bind(小B)();
var obj = {
name:"admin",
show:function(){
this
setTimeout(function(){
console.log(this)
}.bind(this),1000)
}
}
obj.show()
var 小A = {
name:"AAA",
show:function(msg,q,w,e,r,t,y){
console.log(this.name + msg);
console.log(arguments)
}
}
var 小B = {
name:"BBB"
}
小A.show("hahahah");
小A.show.bind(小B,"啊啊啊啊啊","1","2","3")("heihiehie");
bind()的应用
使用bind改造事件委托中的this指向
bind在结束后,会返回一个新函数,需要再次执行
本文详细解析了JavaScript中this关键字的指向规则及其在不同上下文中的变化,重点介绍了如何使用bind方法来改变或固定this的指向,适用于事件处理、回调函数及构造函数等场景。
253

被折叠的 条评论
为什么被折叠?



