构造对象,其中构造函数是字符串

时间:2015-08-23 08:02:03

标签: javascript sapui5

如果构造函数是字符串,是否有办法(使用eval()除外)构建sapui5控件?

例如,我想构建一个文本控件:

var oText = new sap.m.Text({});

但“new sap.m.Text({})”部分实际上是一个字符串。 我试过eval()

var sObj = "new sap.m.Text({});";
var oObj = eval(sObj);
oObj.setText("Hello"); 

它有效。

问题是,是否有另一种更安全的方法可以做到这一点。

1 个答案:

答案 0 :(得分:2)

根据@ dfsq的评论,您可以使用new Function

var fControlGenerator = function (sControlCommand) {
    return new Function("return " + sControlCommand)();
};
var oControl = fControlGenerator("new sap.m.Text()");
相关问题