我有这样的原型;
LocalDataEngine.prototype.ExecuteNonQuery = function (query) { }
我将这个原型称为两个不同的论点,如下所示;
使用对象数组;
var createQueries = new Array();
createQueries.push(new SQLiteQuery(""));
createQueries.push(new SQLiteQuery(""));
createQueries.push(new SQLiteQuery(""));
new LocalDataEngine().ExecuteNonQuery(createQueries);
仅使用对象;
new LocalDataEngine().ExecuteNonQuery(new SQLiteQuery(""));
我的问题是,我怎样才能确定原型中的query
参数是对象数组还是对象?
答案 0 :(得分:4)
您可以使用instanceof
:
% js
> [] instanceof Array
true
> {} instanceof Array
false
如果你不使用框架(无论如何这可能是一个坏主意),它将完美地工作。如果您使用的是框架和ECMAScript 5,请使用Array.isArray
:
> Array.isArray({})
false
> Array.isArray([])
true
请参阅由thg435链接的重复问题以获取其他解决方案。
答案 1 :(得分:2)
像这样:
if (query instanceof Array) {
return 'array';
} else if (query instanceof Object) {
return 'object';
} else {
return 'scalar';
}
答案 2 :(得分:2)
if( Object.prototype.toString.call( yourObj) === '[object Array]' ) {
alert( 'Array!' );
}