var a, kdApi;
a = (function() {
function a() {}
a.prototype.b = function() {
return "foo";
};
return a;
})();
kdApi = (function() {
function kdApi(className, funcName) {
if (typeof [className] !== "undefined" && ([className] != null)) {
eval("cu= new " + className + "()");
if (cu[funcName]) {
console.log("class and function exists");
} else {
console.log("class does, function doesn't");
}
} else {
console.log("both class and function doesn't.");
}
}
return kdApi;
})();
new kdApi("w", "b");
これを実行すると、クラスと関数の両方が存在しないというメッセージが表示されますが、代わりにwが定義されていないというエラーが表示されます。私は間違って何をしていますか?また、私はeval
なしでそれを行うことはできますか?クラスと関数の存在を確認する方法は?
下で試験http://jsbin.com/ufubi5/5
、それはちょうど私の場合には、そうでない、クラス名がウィンドウに添付されていることを前提としています。ここで私の解決策は、それはevalで動作します、私はそれが安全だと思います:http://pastie.org/1500473 – Devrim