转换为ES5语法Javascript

转换为ES5语法Javascript,javascript,arrays,javascript-objects,ecmascript-5,Javascript,Arrays,Javascript Objects,Ecmascript 5,我试图找出如何将这种语法转换成ES5语法 moveUp() { this.row > 0 ? this.row -= 1 : this.row = 0 } 唯一不是ES5的部分是它是一个方法声明。我假设这是一个对象文本,如下所示: const obj = { moveUp() { this.row > 0 ? this.row -= 1 : this.row = 0; } }; 如果是这样,ES5中的近似等价物是在属性初始值设定项中使用

我试图找出如何将这种语法转换成ES5语法

moveUp() {
    this.row > 0 ? this.row -= 1 : this.row = 0
  }

唯一不是ES5的部分是它是一个方法声明。我假设这是一个对象文本,如下所示:

const obj = {
    moveUp() {
        this.row > 0 ? this.row -= 1 : this.row = 0;
    }
};
如果是这样,ES5中的近似等价物是在属性初始值设定项中使用函数表达式:

const obj = {
    moveUp: function() {
        this.row > 0 ? this.row -= 1 : this.row = 0;
    }
};

旁注:我建议不要纯粹因为那样的副作用而使用条件运算符。如果是if/else,请使用
if
/
else
(在ES5或ES2015+中):

您是否需要
else
也值得怀疑。大概没有什么东西会给这一行指定负数,所以您可以这样做:

const obj = {
    moveUp: function() {
        if (this.row > 0) {
            --this.row;
        }
    }
};
如果您正在寻找“更简单的语法”,请将
this.row=0
添加到If语句的else部分

moveUp(){
  if (this.row > 0){
    this.row -= 1
  } else {
    this.row = 0
  }
}

您可以在这里了解有关if语句的更多信息,它已经是ES5语法了。我无法理解它,如何将其转换为更简单的语法syntax@Pointy-实际上,ES5没有方法语法。(我不得不去检查。)@T.J.Crowder啊,你可能是对的,我把它理解为一个简单(不正确)的函数声明。(在这里,猜测上下文总是很困难。)
moveUp(){
  if (this.row > 0){
    this.row -= 1
  } else {
    this.row = 0
  }
}