簡體   English   中英

如何從字符串javascript獲取數據類型

[英]How to get data type from string javascript

我有幾串

strings = [
    "String",
    "Object",
    "Boolean"
]

我想用它們來聲明新對象

for(var i = 0; i < strings.length; i++){
    var x = new strings[i];
}

但是我得到了這個錯誤:

TypeError: string is not a function
  at Object.<anonymous> (/Users/path/code.js)
  at Object.<anonymous> (/Users/path/code.js)
  at Module._compile (module.js:456:26)

如何將字符串視為其基礎類型?


在旁邊:

我知道我可以做類似的事情

type_map = {
    String: String,
    Object: Object,
    Boolean: Boolean
}

然后去

for(var i = 0; i < strings.length; i++){
    var x = new type_map[strings[i]];
}

哪個可行,但我正在尋找某種更優雅的東西(如果存在)。

顯而易見的東西怎么了?

var i, x, constructors = [
    String,
    Object,
    Boolean
];

for(i = 0; i < constructors.length; i++){
    x = new constructors[i];
}

請記住,JS中的任何東西都是一個對象(包括“類名”),可以隨意使用,但是可以隨意使用。

這些類的構造函數是全局對象的屬性。

例如,在瀏覽器中,您可以

console.log(window['String'] === String); // true
var str = new window[strings[0]]();
console.log(str); // ""

找到了一種使用eval函數的好方法

strings = [
    "String",
    "Object",
    "Boolean"
]

for(var i = 0; i < strings.length; i++){
    var x = new (eval(strings[i]));
}

總結一下eval("String") === [Function: String]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM