在制作javascript类函数时,我使用this.了很多.但是在使用它时,它让我怀疑它是否会改变使用它var.
var myClass = function() {
this.x = 4;
return {
getVal: this.x
};
}
Run Code Online (Sandbox Code Playgroud)
与使用var相同的事情
var myClass = function() {
var x = 4;
return {
getVal: x
};
}
Run Code Online (Sandbox Code Playgroud)
什么是差异,什么时候应该使用它们?
变量this变为public变量而变量var变为private变量.
使用this关键字声明的变量或函数成为类的实例成员,这意味着它们将在每个新创建的该类实例中可用.使用时this,您已经创建了一个类,您需要使用new关键字对其进行实例化,如下所示.
例:
function Foo() {
// private var
var bar = 'I am bar';
// public var
this.baz = 'I am baz';
}
var f = new Foo;
console.log(f.bar); // undefined
console.log(f.baz); // I am baz
Run Code Online (Sandbox Code Playgroud)
在制作javascript类函数时,我正在使用它.很多.但是在使用它时,它让我怀疑它是否会改变使用var.
this除非另有需要,否则不应使用您不希望出现在类实例中的关键字创建变量.这只会产生开销,并且像Crockford所说的那样是计算上的浪费.
| 归档时间: |
|
| 查看次数: |
3728 次 |
| 最近记录: |