我搜索了其他问题,他们的“这个”问题并不相似。也在谷歌上搜索,但不是很明白。
在哪里this
引用?正如 quirksmode 所说
..this 总是指我们正在执行的函数的“所有者”,或者更确切地说,指的是函数作为方法的对象。
对于像我这样的新手,它仍然令人困惑。代码是:
var Yourlib = (function() {
var elementSelected = [],
totalElement = 0;
function yourQSA(str) {
elementSelected = document.querySelectorAll(str);
totalElement = elementSelected.length;
return this // this#1 , where is "THIS" referencing to??
}
return {
byClass : function(str) {
elementSelected = document.getElementsByClassName(str);
totalElement = elementSelected.length;
return this; // this#2, the "THIS" is referencing to "Yourlib" obj
},
qsa : yourQSA,
setColor: function(clr) {
var n = 0;
for ( ; n < totalElement; n++ ) {
elementSelected[n].style.color = clr;
}
return this;
}
}
}());
问题:this#1 指的是哪里?还是写return Yourlib;
而不是写更好return this;
?(我们想链接方法)
谢谢你
*注意,目标是创建链接方法。就像是Yourlib.byClass('yourclass').setColor('#ff0000');