你如何在Javascript中实现以下内容
1) var MyObject={
2) tableView:true,
3) chartView:!(this.tableView)
4) }
第 3 行的代码不起作用。那行有什么问题?
每当从代码中设置 tableView 时,我基本上想要做的就是将“chartView”设置为“tableView”的对面。
你如何在Javascript中实现以下内容
1) var MyObject={
2) tableView:true,
3) chartView:!(this.tableView)
4) }
第 3 行的代码不起作用。那行有什么问题?
每当从代码中设置 tableView 时,我基本上想要做的就是将“chartView”设置为“tableView”的对面。
由于您正在创建对象,this
因此不会绑定到该对象。此外,由于您希望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 相反。