gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 17:32:09 25 4
gpt4 key购买 nike

有没有办法知道传递给函数的变量是否是 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com