Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
确定JavaScript中对象的类型_Javascript - Fatal编程技术网

确定JavaScript中对象的类型

确定JavaScript中对象的类型,javascript,Javascript,我有一个Javascript中的神秘对象-有人能告诉我如何初始化类似的对象吗 背景:我继承了一些代码,这些代码通过Flash的params对象传递。我想“伪造”相同的调用,这需要手动构造相同的对象。但我不知道怎么拿,因为我不知道它是什么类型的物体。(问题不在于内容,而在于如何初始化对象。) 请有人告诉我下面的params对象是数组、列表、散列还是其他东西,或者至少我可以自己计算出来,因为JavaScript中没有typeof function doSomething(params) {

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

背景:我继承了一些代码,这些代码通过Flash的
params
对象传递。我想“伪造”相同的调用,这需要手动构造相同的对象。但我不知道怎么拿,因为我不知道它是什么类型的物体。(问题不在于内容,而在于如何初始化对象。)

请有人告诉我下面的
params
对象是数组、列表、散列还是其他东西,或者至少我可以自己计算出来,因为JavaScript中没有
typeof

function doSomething(params) {
    var txt;
    for (p in params) {
       txt = txt + "param:" + p + ", " + params[p] + "\n";
    }
    return txt;
}

谢谢

这将提醒“参数”的类型

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);

你可以把它看作一个杂烩。在您的示例中,
p
是属性名,
params[p]
访问该命名属性的值


和往常一样,佩卡是对的。Javascript中肯定有一个“typeof”操作符。我不知道你是从哪里知道没有的。

从外观上看,
params
看起来像一个字典

JavaScript中没有列表、哈希、字典(等等)。只有对象和数组(数组是对象的一种类型)

假设代码使用
表示。。。在
中,它看起来像是一个对象。即,包含命名成员的容器。除此之外,它还取决于对象的初始化方式

如果要复制对象,请尝试使用其原型:

var copy = {};
copy.prototype = params

考虑到JavaScript中没有typeof?
sez who?:D尝试
警报(参数类型)
JavaScript实际上有
typeof
——但是,对于对象和数组,它返回
'object'
。JavaScript没有单独的列表类型。首先,使用console.log(params)检查该对象。谢谢。不过,公平地说,Javascript的
typeof
并没有区分数组和对象,这是我直到现在才知道的。