这个JavaScript是什么意思?
What does this JavaScript mean?
我正在开发一个遗留应用程序,所有的JS对我来说都很神秘。
这里有几行神秘的台词,我不知道它们在做什么。
var i2b2 = {sdx:{TypeControllers:{},Master:{_sysData:{}}},events:{},hive:{cfg:{},helpers:{},base_classes:{}},h:{}};
if (undefined==i2b2.hive) { i2b2.hive = {}; }
i2b2.hive.tempCellsList = [
{ code: "PM",
forceLoading: true
},
{ code: "ONT" },
{ code: "CRC" },
{ code: "WORK"},
{ code: "SHRINE"},
{ code: "PLUGINMGR",
forceLoading: true,
forceConfigMsg: { params: [] }
}
];
有更多的var
和if
语句,但它们对不同的变量做同样的事情。
请帮我解开这个谜团。
第一行使用嵌套对象字量初始化i2b2
。
var obj = {};
是var obj = new Object();
的简写
一个简单的对象字面值将是
var simpleObject = {
property1: "Hello",
property2: "MmmMMm",
property3: ["mmm", 2, 3, 6, "kkk"],
method1: function() {
alert("my method")
}
};
嵌套的
var rectangle = {
upperLeft: {
x: 2,
y: 2
},
lowerRight: {
x: 4,
y: 4
}
};
你的是经典。
var i2b2 = {
sdx: {
TypeControllers: {},
Master: {
_sysData: {}
}
},
events: {},
hive: {
cfg: {},
helpers: {},
base_classes: {}
},
h: {}
};
第二行是IMHO
i2b2.hive = i2b2.hive || {};
如果hive是undefined,创建一个新对象
最后一行为对象hive
创建了一个属性tempCellsList
。(请注意,hive
是i2b2
的属性)最后,一个新的对象数组被添加到属性tempCellsList
这段javascript代码创建了一个名为ib2b
的变量,它有许多属性:sdx
、events
、hive
等。这些属性包含更多的复合对象,它们将在下面构造。
这个想法是,这个全局对象可以从其他javascript代码中引用,它为客户端应用程序存储全局配置。
我不太确定,你到底不明白什么。上面的代码有两个"奇怪"的地方,我将试着解释一下,但如果这还不够,你需要更好地描述你不理解的地方:
-
代码检查
i2b2.hive
是否未定义,如果未定义,则将其设置为空对象。由于属性显然是在前一行设置的,我的猜测是,这段代码是动态生成的,一些逻辑(如这个检查)是在JavaScript代码中定义的,即使它可以(应该?)是服务器端代码。 -
undefined==i2b2.hive
是一个坏的/错误的方式来测试"未定义",因为undefined
不是一个保留字在JavaScript。这是可行的,因为undefined
只是一个变量,碰巧是未定义的。应该使用if (typeof i2b2.hive == "undefined") ...
,或者只使用if (i2b2.hive) ...
。
它似乎在i2b2
对象中设置了一些参数。它本身不"做"任何事情,但它似乎为进一步执行设置了一些基本配置设置。试着在下面的代码中查找类似的情况。
E。g设置i2b2.hive.tempCellList[5].forceLoading
为true
。之后的应用程序可能具有if
条件,例如
for(var i in i2b2.hive.tempCellList)
{
if(i2b2.hive.tempCellList[i].forceLoading === true)
{
// do something...
}
}
- @@(“at at”)在ES6 JavaScript中是什么意思
- minimy javascript是什么意思?Backbone.js
- var w = q||问2;这个表达式是什么意思
- 什么'它的意思是当一个变量位于括号外时
- 函数(i,val)在javascript中是什么意思
- 问号在这段代码中是什么意思
- 我不知道此代码中的这些符号是什么意思.十进制到二进制
- 什么意思是“;向原型添加方法”;
- ||{}在javascript中是什么意思
- “转义字符串”在Regex中是什么意思?(Javascript)
- 什么是“;传递给NewPromiseCapability的非构造函数值“;意思是
- 什么是“;(''+元素+'')“;意思是
- 这个代码是什么意思(history.replaceState和history.pushstate)
- $(function () { } in javascript/Jquery 中的意思是什么
- [$rootScope:infdig]或[$rootScope:inprog]在angular中的意思是什么?
- “/*@”的意思是什么
- 人们说“字面意思”是什么意思?在JavaScript
- 这两句话的意思是什么?
- 在javascript SRC属性中定义PHP文件的意思是什么?
- 什么'这行在javascript中的意思是什么