JavaScript教程-JavaScript 中的 "this" 关键字
"this" 关键字是一个引用变量,它指向当前对象。在这里,我们将通过不同的示例学习关于 "this" 关键字的用法。
JavaScript "this" 关键字示例
让我们看一个 "this" 关键字的简单示例。
<script>
var address = {
company: "Javatpoint",
city: "Noida",
state: "UP",
fullAddress: function() {
return this.company + " " + this.city + " " + this.state;
}
};
var fetch = address.fullAddress();
document.writeln(fetch);
</script>
输出:
Javatpoint Noida UP
以下方法可以用来了解 "this" 关键字引用的是哪个对象。
全局上下文
在全局上下文中,变量在函数外部声明。在这里,"this" 关键字指向 window 对象。
<script>
var website = "Javatpoint";
function web() {
document.write(this.website);
}
web();
</script>
调用(call())和应用(apply())方法
调用(call())和应用(apply())方法允许我们编写可以用于不同对象的方法。
<script>
var emp_address = {
fullAddress: function() {
return this.company + " " + this.city + " " + this.state;
}
};
var address = {
company: "Javatpoint",
city: "Noida",
state: "UP",
};
document.writeln(emp_address.fullAddress.call(address));
document.writeln(emp_address.fullAddress.apply(address));
</script>
绑定(bind())方法
绑定(bind())方法是在 ECMAScript 5 中引入的。它创建一个新的函数,其 "this" 关键字引用提供的值,带有给定的参数序列。
<script>
var lang = "Java";
function lang_name(call) {
call();
};
var obj = {
lang: "JavaScript",
language: function() {
document.writeln(this.lang + " 是一种流行的编程语言。");
}
};
lang_name(obj.language);
lang_name(obj.language.bind(obj));
</script>