slogan: 我学编程就是为了赚钱,后来发现它不只是能赚钱…
js 中的 this 关键字
在类似JavaScript面向对象的编程语言中,this 关键字一般表示当前对象的一个引用。但在 JavaScript 中 this 不是固定不变的,它会随着执行环境的改变而改变。换句话说,js中的 this 对象是一个函数执行的上下文对象。
- 如果单独使用或者在全局函数中使用,this 表示全局对象,相当于 window 。
var name = "张三"; //定义一个全局变量
function fun() {
return this.name; //返回this指向的name
}
console.log(fun()) //调用fun()函数,结果为“张三”
- 在方法中,this 表示该方法所属的对象。
var action = "无所事事"; //创建全局对象 action
function run() {
console.log(this.action)
}
var person1 = {
name: "zhangsan",
age: 20,
action: "跑步",
doing: run //作为对象里的方法,run()中的this指向该对象中的 action ,而不是全局里的 action
}
var person2 = {
name: "lisi",
age: 20,
action: "走路",
doing: run
}
person1.doing(); // 结果为“跑步”
person2.doing(); // 结果为“走路”
- 在 HTML 事件句柄中,this 指向接收事件的 HTML 元素。
<button onclick="this.style.display='none'">
点了之后按钮就消失了
</button>