array的indexof的实现问题?

其中的

var O = Object(this);
var len = O.length >>> 0;

这两句是什么意思?

if (!Array.prototype.indexOf) {

  Array.prototype.indexOf = function(searchElement, fromIndex) {

    var k;

    if (this == null) {

      throw new TypeError('"this" is null or not defined');

    }

    var O = Object(this);

    var len = O.length >>> 0;

    if (len === 0) {

      return -1;

    }

    var n = +fromIndex || 0;

    if (Math.abs(n) === Infinity) {

      n = 0;

    }

    if (n >= len) {

      return -1;

    }

    k = Math.max(n >= 0 ? n : len - Math.abs(n), 0);

    while (k < len) {

      if (k in O && O[k] === searchElement) {

        return k;

      }

      k++;

    }

    return -1;

  };

}


白板的微信
浏览 428回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript