javascript JSON对象定义this.property或objectName.property?

时间:2015-04-06 18:08:34

标签: javascript json canvas

我想知道下面哪一个是最好的实践,如果它真的很重要?

我应该像这样使用这句话:

var object = {
  x: 20,
  y: 10,
  width: this.x,
  height: this.y,
  render: function () {  //renders object on canvas
    ctx.fillRect(this.x, this.y, this.width, this.height);
  }
};

或者我应该像这样使用对象名称:

var object = {
  x: 20,
  y: 10,
  width: object.x,
  height: object.y,
  render: function () {  //renders object on canvas
    ctx.fillRect(object.x, object.y, object.width, object.height);
  }
};

提前多多感谢!

2 个答案:

答案 0 :(得分:0)

这两种情况都不适合你。

var object = {
  x: 20,
  y: 10,
  width: this.x,
  height: this.y,
  render: function () {  //renders object on canvas
    ctx.fillRect(this.x, this.y, this.width, this.height);
  }
};

在上面的场景中:width.x,height:this.y不起作用。因为对象this关键字只能在render函数中使用。对于在渲染函数外部编写的渲染函数,这是窗口对象。

var object = {
  x: 20,
  y: 10,
  width: object.x,
  height: object.y,
  render: function () {  //renders object on canvas
    ctx.fillRect(object.x, object.y, object.width, object.height);
  }
};

在第二个场景width:object.x中,height:object.y将无法工作,因为您尝试在其定义的中间使用对象变量。渲染功能中没有任何问题。

答案 1 :(得分:-1)

使用第一个,因为对于其他开发人员而言,你所指的是更加清晰。

它是为你想要的东西而制作的,所以通过使用它,你清楚地传达你的意图而不是混淆它们。