[英]javascript type error “is not a constructor”
我有幾個用於表示不同類型表的類。 我把類的名字放到字典里。 我通過鍵從字典中獲取類名稱,並嘗試通過使用構造“ new var_with_class_name()”創建類的實例,但收到錯誤“ TypeError:dictionary [model_name]不是構造函數”。 此代碼打包為require.js模塊。 碼:
define("models", ["jquery", "ui"], function($, ui){
var TimeTableRow = function()
{ /* class methods definitions */ }
var WayTableRow = function()
{ /* ... */ }
var ModelsDictionary = function()
{
var self = this;
self.getModel = function(model_name)
{
var dictionary = {'time':"TimeTableRow", 'way':"WayTableRow"};
return new dictionary[model_name]();
}
}
return new ModelsDictionary();
});
來自另一個require.js模塊的用法示例(我跳過了所有requirejs的配置和導入,只是拋出描述了錯誤的代碼行): var tableRow = models.getModel(item_type);
特定
var dictionary = {'time':"TimeTableRow", 'way':"WayTableRow"};
return new dictionary[model_name]();
dictionary[model_name]
計算結果為字符串 (或未定義),而new ("x")()
則毫無意義。 相反,查找結果應為實際的構造函數:
var dictionary = {'time': TimeTableRow, 'way': WayTableRow};
return new dictionary[model_name]();
請記住,函數只是JavaScript中的對象。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.