Javascript 如何根据其他键自动为另一个键赋值';对象中的s值

Javascript 如何根据其他键自动为另一个键赋值';对象中的s值,javascript,Javascript,如何在Javascript中实现以下功能 1) var MyObject={ 2) tableView:true, 3) chartView:!(this.tableView) 4) } 第3行的代码不工作。那行怎么了 我基本上想做的是,每当从代码设置tableView时,将“chartView”设置为“tableView”的相反位置。由于您正在创建对象,此不绑定到该对象。此外,由于您希望图表视图始终以与表格视图相反的方式进行计算,即使后者进一步改变,函数也是一种更好的方法: va

如何在Javascript中实现以下功能

1) var MyObject={
2)    tableView:true,
3)    chartView:!(this.tableView)
4) }
第3行的代码不工作。那行怎么了


我基本上想做的是,每当从代码设置tableView时,将“chartView”设置为“tableView”的相反位置。

由于您正在创建对象,
不绑定到该对象。此外,由于您希望
图表视图
始终以与
表格视图
相反的方式进行计算,即使后者进一步改变,函数也是一种更好的方法:

var MyObject = {
    tableView: true,
    chartView: function() {
        return !this.tableView;
    }
};
现在您可以执行以下操作:

var chartView = MyObject.chartView();  // false.
MyObject.tableView = false;
chartView = MyObject.chartView();      // true.

不能使用它引用对象文字属性中的对象。您可以在作为该对象的方法的函数中使用此选项:

var MyObject = {
  tableView: true,
  chartView: function () {
    return !this.tableView;
  }
}

根据您的要求,这可能也是一个答案

 var MyObject = {
      view : function(bool){
         this.tableView = bool;
         this.chartView = !(bool); 
      }
      tableView: true,
      chartView: false
    } 

    MyObject.view(false)

    console.log(MyObject.tableView);     // Outputs false
    console.log(MyObject.chartView)      // Outputs true

这样,在chartView中,只需调用一个函数,就可以始终使用与tableView相反的函数。

哦,是的……我忘记了在函数中使用“This”的概念。谢谢你提醒我。