【js学习笔记十七】普通函数中的this指向问题解决方案call
目录
前言
导语
解决思路
运行结果
总结
前言
我是歌谣 我有个兄弟 巅峰的时候排名c站总榜19 叫前端小歌谣 曾经我花了三年的时间创作了他 现在我要用五年的时间超越他 今天又是接近兄弟的一天人生难免坎坷 大不了从头再来 歌谣的意志是永恒的 放弃很容易 但是坚持一定很酷
导语
歌谣 歌谣 如下的代码报错了 怎么解决

//口诀 谁调用就会指向谁 这边是普通函数 直接报错this.fang is not
a function
var name="geyao"
var fangfang = {
name : "fangfang", fang: function () { console.log(this.name)
}, fun: function () { setTimeout( function () { this.fang()
},100);
}
};
fangfang.fun()
解决思路
//口诀 谁调用就会指向谁 这边是普通函数 直接报错this.fang is not a function
var name="geyao"
var fangfang = {
name : "fangfang", fang: function () { console.log(this.name)
}, fun: function () {
setTimeout( function () { this.fang()
}.call(fangfang),100);
}
};
fangfang.fun()
运行结果
fangfang
总结
call()
方法使用一个指定的this
值和单独给出的一个或多个参数来调用一个函数。