如何检查对象是否有功能?(道场)

ant*_*pug 37 javascript dojo

var testObj = this.getView();
Run Code Online (Sandbox Code Playgroud)

如果testObj callableFunction在我实际尝试调用之前有,那么我如何检查DoJo(或者只是本机JS),如果callableFunction()不存在则会失败?我更喜欢本机DoJo解决方案,因为我需要这个解决方案适用于所有浏览器.

dfs*_*fsq 82

你可以这样称呼它:

testObj.callableFunction && testObj.callableFunction();
Run Code Online (Sandbox Code Playgroud)

或详细说明:

if (typeof testObj.callableFunction == 'function') {
    testObj.callableFunction();
}
Run Code Online (Sandbox Code Playgroud)

  • @Ethan在他的情况下,使用==是安全的,因为typeof运算符总是返回字符串类型.但是如果你在项目中使用===那么为了保持一致 - 是的. (3认同)
  • @dfsq 这不应该是 === 'function' 吗? (2认同)