脚本宝典收集整理的这篇文章主要介绍了题讲this,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
参考 来源:https://www.bilibili.com/video/BV1sN411974w?p=2 细讲:this - JavaScript | MDN (mozilla.org)
function get(content) {
console.log(content)
}
get('Hello') // Hello
// 上面的写法是下面的语法糖:函数即对象,归属于全局对象window
get.call(window,'Hello') // Hello
var person ={
name: 'San',
run: function (time) {
console.log(`${this.name} is running,at least ${time}min`)
}
}
person.run(30) // San is running,at least 30min
// 上面的写法是下面的语法糖:person对象
person.run.call(person,30) // San is running,at least 30min
// 1
var x = 11;
var obj = {
x: 22,
say: ()=> {
console.log(this.x) // 箭头函数作用域:obj的对象内;指向上一层:window
}
}
obj.say();// 11
// 2
var obj = {
birth: 1990,
getAge: function () {
var b = this.birth; // 1990
var fn = () => new Date().getFullYear() - this.birth; // 箭头函数作用域:function () {};指向上一层:正确获取到birth
}
};
obj.getAge();
var name = 222
var a = {
name: 111,
say: function () {
console.log(this.name)
}
}
var fun = a.say
fun() // 输出1:fun.call(windows),指向window,222
a.say() // 输出2:a.say.call(a),指向a,111
var b = {
name: 333,
say: function (fun) {
fun()
}
}
b.say(a.say) // 输出3:fun.call(windows),指向window,222
b.say = a.say
/*
var b = {
name: 333,
say: function () {
console.log(this.name)
}
}
*/
b.say() // 输出4:b.say.call(b)指向b,333
执行见题目注释
222
111
222
333
以上是脚本宝典为你收集整理的题讲this全部内容,希望文章能够帮你解决题讲this所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。