为了在javascript函数中使用静态变量,我发现了两种方法,使用。和:运营商。 使用时。运算符我们必须使用“f.variable”指定变量,并在使用时:我们必须使用“this.variable”。这两个运营商的使用有什么区别。
function f(){
f.a += 1;
this.b += 1;
console.log("f.a: ", f.a);
console.log("this.b: ", this.b);
}
f.a = 0;
f:b = 0;
我们也不能使用:当在其函数之外使用该变量时:
function g(){
f:b = 0; //this works fine.
var c = f:b; //raises error invalid label.
console.log(f:b);//but this raises an error missing ')'.
}
使用var创建对象的情况也是如此。
var obj = {
a: 2,
b: 3
}
//accessing a and b is done using obj.a & obj.b
//but here
obj:a = 4;
console.log(f.a); // this gives 2
//and similarly using obj:a as rhs value gives error.
这两个运算符实际上是如何使用的。
编辑: 创建这两种类型的变量有什么区别。
答案 0 :(得分:4)
此:
f:b = 0;
在表达式语句b = 0;
之前,被解释为label," f"。 ":"在object literal语法中用于将属性名称表达式与其值表达式分隔开。否则,它不用于引用对象的属性。