查看对象是否具有另一个对象和属性的更好方法

时间:2014-03-18 11:49:34

标签: javascript refactoring

我有这种方法。有没有办法把它写得更好?我想检查他是否可以触发analyticsTracker。

isTriggerAvailable: function() {
      return (
        typeof VC !== 'undefined' &&
        typeof VC.components !== 'undefined' &&
        typeof VC.components.analyticsTracker !== 'undefined' &&
        typeof VC.components.analyticsTracker.trigger !== 'undefined'
      );
    },

1 个答案:

答案 0 :(得分:0)

您可以使用此处描述的功能。

  function checkNested(obj /*, level1, level2, ... levelN*/) {
    var args = Array.prototype.slice.call(arguments),
        obj = args.shift();

    for (var i = 0; i < args.length; i++) {
      if (!obj.hasOwnProperty(args[i])) {
        return false;
      }
      obj = obj[args[i]];
    }
    return true;
  }

https://stackoverflow.com/a/4676258/2134720