在 JavaScript 中设置和获取布尔对象 属性
Setting and getting a boolean object property in JavaScript
所以我刚刚提交了第一个关于协作软件项目(使用 Ember.js 构建的网络应用程序)的拉取请求,我注意到我不小心包含了一个布尔变量(有条件地在函数中设置)在对象文字中 仅使用变量名 而不是键值对,如下所示:
function fruitStand () {
// do something here to decide if this basket is pretty, and if not..
var prettyBasket = false;
var myObj = {
apples : 1,
oranges : 2,
prettyBasket
};
return myObj;
}
我很惊讶后来使用
访问布尔值
var stand = fruitStand();
var truthy = stand.prettyBasket;
似乎有效,但这是否有效 JavaScript?否则形式不佳?如果上面的没问题,用 prettyBasket : prettyBasket
之类的设置感觉不那么干燥。
您无意中使用了 ES6 的一项功能,特别是 shorthand 对象文字表示法,您可以阅读有关 here 的更多信息。
此外,取决于您正在开发的应用程序是使用 Ember-cli 构建的(并且正在使用 ES6 转译器)还是构建常规的 Ember 应用程序(可能没有转译),您应该认识到只有最新的浏览器才会支持该代码,除非它被转译为标准对象文字表示法。
所以我刚刚提交了第一个关于协作软件项目(使用 Ember.js 构建的网络应用程序)的拉取请求,我注意到我不小心包含了一个布尔变量(有条件地在函数中设置)在对象文字中 仅使用变量名 而不是键值对,如下所示:
function fruitStand () {
// do something here to decide if this basket is pretty, and if not..
var prettyBasket = false;
var myObj = {
apples : 1,
oranges : 2,
prettyBasket
};
return myObj;
}
我很惊讶后来使用
访问布尔值var stand = fruitStand();
var truthy = stand.prettyBasket;
似乎有效,但这是否有效 JavaScript?否则形式不佳?如果上面的没问题,用 prettyBasket : prettyBasket
之类的设置感觉不那么干燥。
您无意中使用了 ES6 的一项功能,特别是 shorthand 对象文字表示法,您可以阅读有关 here 的更多信息。
此外,取决于您正在开发的应用程序是使用 Ember-cli 构建的(并且正在使用 ES6 转译器)还是构建常规的 Ember 应用程序(可能没有转译),您应该认识到只有最新的浏览器才会支持该代码,除非它被转译为标准对象文字表示法。