日期:2014-05-17  浏览次数:20789 次

解释语句含义
Array.prototype.i = Array.prototype.indexOf ||
  function(value){
  for (var i = this.length; i-- && this[i]!== value;) {}
  return i;
  };
这段话是什么意思??求解释。
特别是
Array.prototype.indexOf ||
  function(value)
这个没看懂!

------解决方案--------------------
Array.prototype.indexOf中的indexOf是自已对类Array实现的方法
意即:
如果实现了此方法,此Array.prototype.i=Array.prototype.indexOf
即i与indexOf同意
若未实现此方法,则对Array中的扩展方法i用后面的函数来实现
------解决方案--------------------
JScript code
Array.prototype.i = Array.prototype.indexOf || function(value) {
    for (var i = this.length; i-- && this[i] !== value;) {}  //这里有点问题, return i;语句应该是在这个for循环体内的
    return i;
};

//等价于
if (Array.prototype.indexOf != false) Array.prototype.i;
else Array.prototype.i = function(value) {
    for (var i = this.length; i-- && this[i] !== value;) {
        return i; 
    }
}

------解决方案--------------------
比如
给b赋值,如果a有值那么把a的值赋给b,如果a没值那么把4赋给b
JScript code

            var a;
            var b = a || 4;
            alert(b)

------解决方案--------------------
探讨
JScript code

Array.prototype.i = Array.prototype.indexOf || function(value) {
for (var i = this.length; i-- && this[i] !== value;) {} //这里有点问题, return i;语句应该是在这个for循环体内的
return i……