Javascript常用的干式编程习惯用法

Javascript常用的干式编程习惯用法,javascript,Javascript,我想通过更改最后两行代码来减少上述代码的冗长;我怎样才能做到这一点呢?使用引用怎么样 var veryLongObjectName = {}; // ... if (!veryLongObjectName["verylongpropertyName"]) veryLongObjectName["verylongpropertyName"] = 0; if (veryLongObjectName["verylongpropertyName"]++) console

我想通过更改最后两行代码来减少上述代码的冗长;我怎样才能做到这一点呢?

使用引用怎么样

var veryLongObjectName = {};
// ...


if (!veryLongObjectName["verylongpropertyName"]) 
      veryLongObjectName["verylongpropertyName"] = 0;

if (veryLongObjectName["verylongpropertyName"]++) 
      console.log("I've seen it already");

如果你的物品和道具让你烦恼,你为什么不做个短柄呢

var veryLongObjectName = {};
var prop = veryLongObjectName["verylongpropertyName"];

if (!prop) 
    prop = 0;

if (prop++) 
    console.log("I've seen it already");
或者创建一个函数来处理您想要执行的操作:

var veryLongObjectName = {};
var obj = veryLongObjectName;
var prop = "verylongpropertyName";

if (!obj[prop]) obj[prop] = 0;

if (obj[prop]++) console.log("I've seen it already");

通过缩短对象和属性名称。DRY不是使用变量,即使它们有很长的名称。DRY是不重复我自己;我用了很长的名字只是为了指出有人不喜欢这个问题,但在其他语言中这不会是一个问题,在其他语言中?你不是那个写这些长名字的人吗?你可能不应该为此使用点符号-他使用括号符号是正确的,仅供参考:)如果属性不是对象,你将不会得到引用,但你会得到一个副本。道具上的任何后期操作都不会对原始属性产生任何影响。我错过什么了吗?正如我所看到的,这里的道具是一个数字。属性是数字,
++
确认that@mpapec是的,好的,那么你需要把计算出的值拉回来。
var veryLongObjectName = {};
var obj = veryLongObjectName;
var prop = "verylongpropertyName";

if (!obj[prop]) obj[prop] = 0;

if (obj[prop]++) console.log("I've seen it already");
function checkProp(obj, prop) {
    obj[prop] = obj[prop] || 0;
    if (obj[prop]++) console.log("I've seen it already");
}