Heim  >  Artikel  >  Web-Frontend  >  解释语句含义_html/css_WEB-ITnose

解释语句含义_html/css_WEB-ITnose

WBOY
WBOYOriginal
2016-06-24 12:11:36883Durchsuche

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用后面的函数来实现

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; 	}}


代码的作用是为数组类型添加一个i()方法,检查如果浏览器本身支持indexOf方法,i就引用该方法(i成为indexOf的别名,如果不支持,就自定义一个i()方法。
Array.indexOf()是JS 1.6版本开始支持的,所以不是说有的浏览器都支持

比如
给b赋值,如果a有值那么把a的值赋给b,如果a没值那么把4赋给b

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

等价与
var a;
var b = a ? a : 4;
等价与
var a;
if( a ){
b = a;
}else{
b = 4;
}

JScript code

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

这样的啊,谢谢各位大神!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn