1

我继承了一个 javascript 代码库,我是 javascript 新手。所以我使用 JSHint 来避免常见的错误和误用。

JSHint 找到了这段代码,但我不知道如何避免邪恶的 eval:

function GetProperties(object) {
    var result, property, t;
    result = '';
    for (property in object) {
        if (property.indexOf('Get', 0) === 0) {
            t = object[property] + "...";
            eval("if (GetNumOfParameter(t) == 0) var m = object." + property + "(); else var m = -100;");

            if (window.m != -100) {
                result += property + ': ' + window.m + '\r\n';
            }
        }
    }
    return result;
}
4

1 回答 1

2

用下面的就好多了,m别的地方不用就不用了。

function GetProperties(object) {
    var result, property, t;
    result = '';
    for (property in object) {
        if (property.indexOf('Get', 0) === 0) {
            t = object[property] + "...";

            if (GetNumOfParameter(t) == 0) 
                result += property + ': ' + object[property]() + '\r\n';
        }
    }
    return result;
}
于 2012-04-19T14:36:23.490 回答