heyujie
2021-06-07 8f8155aa4c83f7c2577ac123add550766b6a7ce3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
"use strict";
 
var toPosInt          = require("../../number/to-pos-integer")
  , callable          = require("../../object/valid-callable")
  , value             = require("../../object/valid-value")
  , objHasOwnProperty = Object.prototype.hasOwnProperty
  , call              = Function.prototype.call;
 
module.exports = function (cb/*, thisArg*/) {
    var i, self, thisArg;
 
    self = Object(value(this));
    callable(cb);
    thisArg = arguments[1];
 
    for (i = toPosInt(self.length) - 1; i >= 0; --i) {
        if (objHasOwnProperty.call(self, i)) call.call(cb, thisArg, self[i], i, self);
    }
};