javascript - 知道变量是否是javascript中的 native 对象

标签 javascript variables native

有没有办法知道传递给函数的变量是否是 native 对象?我的意思是,我有一个只需要 native 对象作为参数的函数,对于所有其他类型的变量,它都会抛出错误。所以:

func(Array); //works
func(String); //works
func(Date); //works
func(Object); //works
...
func([]); //Throwr error
func({}); //Throws error

我想知道是否有办法区分 native 对象和其他所有对象。

最佳答案

您必须根据接受值列表(不会那么长,从您的问题),请注意这可能会被误认为某些东西不是本地人(只是来自另一个窗口)。

但基本上:

if (obj !== Array &&
    obj !== String &&
    obj !== Date &&
    /* ...and so on, there are only a few of them... */
   ) {
    throw "your error";
}

编辑 关于我对其他窗口的评论:请注意,一个窗口的构造函数不是 === 来自另一个窗口(包括 iframe)的构造函数,例如:

var wnd = window.open('blank.html');
alert("wnd.Array === Array? " + (wnd.Array === Array));

alerts "wnd.Array === Array? false",因为wnd中的Array不一样>Array 在当前窗口中,即使两者都是数组的内置构造函数。

关于javascript - 知道变量是否是javascript中的 native 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2819655/

相关文章:

javascript - 将多个变量导出为一个

Javascript — 操作动态加载(或自动分页)内容的属性

javascript - 延迟 jQuery 脉动与计时器相结合

reactjs - 如何将推送通知从 django 发送到 React Native 应用程序?

Android/iOS : How to create a web-app, 使用原生组件?

java - Phonegap vs native on android 性能测试

javascript - 如何使用javascript在表单中的数据列表中附加元素

javascript - JS/ANGULAR 使用 var 的值作为另一个对象的键

bash - shell变量的名称可以有空格吗?

bash - bash 脚本中 `exec` 之后不会运行任何代码