日期:2014-05-16  浏览次数:20325 次

js中 关于this的一段代码看不透,求解!!!
function Field(w,h){
this.width = w?w:10;
this.height = h?h:20;
this.show = function(){
var f = create("div","f")
f.style.width=this.width*20+'px';
f.style.height=this.height*20+'px';}
this.findFull = function(){
for(var l=0;l<this.height;l++){
var s=0;
for(var i=0;i<this.width;i++){
s+=this[l*this.width+i]?1:0;}//this[]这种用法很不明白
if(s==this.width){
this.removeLine(l);}}}
javascript this function js thsi[]

------解决方案--------------------
this[a]就是当前对象的a属性。js的寻址方式通过.和[]都是一样的
------解决方案--------------------
引用:
2楼说this[a]就是当前对象的a属性,可我打印出a a是一个数啊 函数中没有a属性啊


js的寻址是这样的,如果a是一个数,那么就作为this对象的第a个属性来引用。
------解决方案--------------------
引用:
2楼说this[a]就是当前对象的a属性,可我打印出a a是一个数啊 函数中没有a属性啊


而且如果这里this指代的是数组,那么就是数组了呗,本身数组和对象没什么区别……
------解决方案--------------------
js对象可以看成是一个hash,
你可以直接 object.key 来访问
也可以用object[key]来动态访问
数组你可以看成是一种特别的object。