JavaScript返回this.key=变量;

JavaScript返回this.key=变量;,javascript,return,Javascript,Return,对不起,如果有人问我这个问题,我已经搜索了几个小时了,我无法在问题中表达我的处境 简单地说,我希望我的脚本尽可能小,并且使用下面指定的方法可以实现这一点而不会出错 基本上,如果我有以下内容: function myFunction(val){ this.key = val; } myFunction.prototype.changeKey = function(newVal){ this.key = newVal; return this.key; } 这基本上是对我的剧本

对不起,如果有人问我这个问题,我已经搜索了几个小时了,我无法在问题中表达我的处境

简单地说,我希望我的脚本尽可能小,并且使用下面指定的方法可以实现这一点而不会出错

基本上,如果我有以下内容:

function myFunction(val){
   this.key = val;
}
myFunction.prototype.changeKey = function(newVal){
   this.key = newVal;
   return this.key; 
}
这基本上是对我的剧本的过度简化

但这样做也可以吗

myFunction.prototype.changeKey = function(newVal){
   return this.key = newVal; 
}
我正在使用谷歌chrome,它似乎工作正常,但是否有任何错误/问题,或者它是100%好这样做。我以前从未见过它

this.key = newVal;
return newVal;
因为表达式
a=b
的计算结果是
b
的值,即
b

这与背后的想法相似

if(a++ < 10)
if(a++<10)
a
的值会发生变化,但它在表达式之前也会计算为
a
,因此会使用副作用。

赋值“返回”赋值,因此完全可以编写您拥有的代码


然而,可读性可能会受到影响。这是一种应该由缩小器执行的步骤,而不是手动执行。

这是正确的。赋值是Javascript中的表达式,并根据赋值进行计算。这些微小的改进通常只会使代码更难阅读和维护。如果你回来了,你就回来了。如果您正在分配,则您正在分配。每行坚持一个动作。不完全是。与
返回newVal相同@VisioN这些与O有什么不同_O@VisioN设置时是否可以重载
=
?@djechlin,不完全是这样,但是
属性理论上可能有一个自定义的getter或setter,它最终获取或存储的不是
newVal