我在Javascript中有一个神秘的对象 - 请有人告诉我如何初始化类似的对象吗?
背景:我继承了一些从Flash传递params
对象的代码。我想“伪造”同一个调用,这需要手动构建同一个对象。但我无法弄清楚如何接受它,因为我不知道它是什么类型的物体。 (这不是内容的问题:它是如何来初始化对象。)
请有人告诉我下面的params
对象是一个数组,一个列表,一个哈希还是其他什么 - 或者至少我如何为自己解决这个问题,因为没有{{1在JavaScript?
typeof
谢谢!
答案 0 :(得分:1)
这会提醒'params'的类型。
function doSomething(params) {
alert("Type of params variable: " + typeof params);
var txt = '', p;
for (p in params) {
txt += "param:" + p + ", " + params[p] + "\n";
}
return txt;
}
如果您只想拦截变量,并将参数传递给原始函数,请尝试以下操作:
window.originalFunction = doSomething;
window.doSomething = function(param1){
// do something with param1
return window.originalFunction(param1);
};
要检查params
是否为数组,请尝试:
alert(params instanceof Array);
答案 1 :(得分:0)
您可以将其视为哈希。在您的示例中,p
是属性名称,params[p]
访问该命名属性的值。
和往常一样,佩卡是对的。在Javascript中,肯定 是一个“typeof”运算符。我不知道你在哪里知道没有。
答案 2 :(得分:0)
从它的外观来看,params
看起来像一本字典
答案 3 :(得分:0)
JavaScript中没有列表,哈希,词典(等)。只有对象和数组(而数组是一种对象)。
鉴于代码使用for... in
,它看起来像是一个Object。也就是说,具有命名成员的容器。除此之外,它取决于对象的初始化方式。
如果您想复制该对象,请尝试使用其原型:
var copy = {};
copy.prototype = params