【发布时间】:2016-10-18 23:45:54
【问题描述】:
如何检查函数中传递的字符串参数是否太可调用/函数但不是直接在window.下。
我知道可以使用window['functionName']语法检查打开/直接调用函数
但是在要检查的对象中声明的成员函数呢?
在下面的例子中openFunction()可以被调用,但是如何调用obj1.foo()呢?
不喜欢使用
eval()
示例代码:
var obj1 = {
foo: function() {
alert("I'm a function");
}
}
function openFunction() {
alert("I know i am easily callable");
}
function callSomeone(txtcallback) {
var fn = window[txtcallback];
if (typeof fn === 'function') {
fn();
}
console.log(typeof fn);
}
callSomeone('openFunction'); //function
callSomeone('obj1.foo'); //undefined
【问题讨论】:
-
你应该看看 JsonPath。它使用一种
XPath来“查询”对象 => goessner.net/articles/JsonPath
标签: javascript function callback javascript-objects callable-object