是否有
的快捷方式myVar = myFunction(myVar);
与myVar+=2;
类似,而不是myVar=myVar+2;
谢谢!
答案 0 :(得分:3)
不,不存在这样的表达。如果我们检查ECMAScript 5 section 11.13,我们会看到简单分配(=
)和复合分配(op=
)。复合赋值运算符在规范中详尽列出:
*= /= %= += -= <<= >>= >>>= &= ^= |=
这些运算符都不应用命名函数。
答案 1 :(得分:0)
嗯,没有特定的操作符,但是没有什么能阻止你使用对象作为变量上下文做类似的事情。
function VarContext() {}
VarContext.prototype.someFunction = function (member) {
//could be any kind of processing
this[member] += 1;
};
var ctx = new VarContext();
ctx.test = 1;
ctx.someFunction('test');
ctx.test; //2
函数也可以绑定到对象。
someFunction = ctx.someFunction.bind(ctx);
然后你可以写:
someFunction('test');