给定以下代码,我们可以看到闭包有助于将变量的值包含在其范围内:
var f = new Foo('jim','jam');
var b = new Bar('saul','paul');
var bz = new Baz();
function Foo(jim,jam){
this.jim = jim;
this.jam = jam;
function log(){
console.log('jim:',jim,'jam:',jam);
}
return log;
}
function Bar(jim,jam){
function log(){
console.log('jim:',jim,'jam:',jam);
}
return log;
}
function Baz(jim,jam){
this.jim = 'bark';
this.jam = 'catch';
function log(){
console.log('jim:',this.jim,'jam:',this.jam);
}
return log;
}
f();
b();
bz();
那么,JavaScript 中的“this
”关键字到底有什么用呢?什么时候变得有必要?
最佳答案
this
关键字用于访问当前上下文,与当前作用域不同。
如果您调用一个对象的方法,该调用的上下文就是该对象。您可以使用 this
关键字访问对象中的属性:
function Foo(jim,jam){
this.x = jim;
this.y = jam;
}
Foo.prototype.log = function(){
document.write('jim:' + this.x + ', jam:' + this.y);
};
var f = new Foo('jim','jam');
f.log();
关于javascript - 既然 JavaScript 有闭包,那么 this 关键字的目的到底是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29931446/