确定JavaScript中对象的类型

时间:2010-09-13 18:37:19

标签: javascript

我在Javascript中有一个神秘的对象 - 请有人告诉我如何初始化类似的对象吗?

背景:我继承了一些从Flash传递params对象的代码。我想“伪造”同一个调用,这需要手动构建同一个对象。但我无法弄清楚如何接受它,因为我不知道它是什么类型的物体。 (这不是内容的问题:它是如何来初始化对象。)

请有人告诉我下面的params对象是一个数组,一个列表,一个哈希还是其他什么 - 或者至少我如何为自己解决这个问题,因为没有{{1在JavaScript?

typeof

谢谢!

4 个答案:

答案 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