Javascript:的用法有什么不同。and:用于在函数或对象中指定变量的运算符?
对于在javascript函数中使用静态变量,我发现了两种方法,使用。和:接线员。 使用时。运算符我们必须用“f.variable”指定变量,使用时:我们必须使用“this.variable”。这两个操作符的用法有什么不同Javascript:的用法有什么不同。and:用于在函数或对象中指定变量的运算符?,javascript,function,static-members,Javascript,Function,Static Members,对于在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 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.
这两个运算符实际上是如何使用的
编辑:
创建的这两类变量之间有什么区别。这是:
f:b = 0;
在表达式语句前被解释为“f”b=0代码>。“:”在语法中用于将属性名称表达式与其值表达式分开。否则,它不用于引用对象的属性。这是:
f:b = 0;
在表达式语句前被解释为“f”b=0代码>。“:”在语法中用于将属性名称表达式与其值表达式分开。否则,它不用于引用对象的属性。您不应使用f:b=0代码>符号。语法正确,但含义不正确。使用var b=0变量的代码>和varo={b:0}代码>对于对象,不应使用f:b=0代码>符号。语法正确,但含义不正确。使用var b=0变量的代码>和varo={b:0}代码>对于对象+1,回答正确。我认为标签只能在其定义的范围内访问;这是我的一个假设,因为我很少在代码中使用标签。如果我是一个更好的人,我会创建一个测试来确定答案。我很好奇。有人能告诉我为什么“console.log(f:b)”生成一个错误(缺少“)”?@DanielK。这是因为解析器猜测您想要键入console.log()f:b…
或类似的内容。换句话说,“f:”在该上下文中没有意义,因此它假设您在开始新语句之前忘记完成上一个表达式。但是它为该函数创建了什么类型的变量,以及它与f.b=0有何区别代码>@rajan永远不要使用“:”除非您正在编写对象文字。在这种情况下,它是没有意义的。我认为标签只能在其定义的范围内访问;这是我的一个假设,因为我很少在代码中使用标签。如果我是一个更好的人,我会创建一个测试来确定答案。我很好奇。有人能告诉我为什么“console.log(f:b)”生成一个错误(缺少“)”?@DanielK。这是因为解析器猜测您想要键入console.log()f:b…
或类似的内容。换句话说,“f:”在该上下文中没有意义,因此它假设您在开始新语句之前忘记完成上一个表达式。但是它为该函数创建了什么类型的变量,以及它与f.b=0有何区别代码>@rajan永远不要使用“:”除非您正在编写对象文字。在这种情况下,它永远没有意义。