传递函数的this的问题
传递函数中的this具体指的是什么?是内容、ID还是什么呢?是不是有了this就相当于document.getElmentById("#");直接后面赋值就行了呢?this.style.display
传递函数中的this具体指的是什么?是内容、ID还是什么呢?是不是有了this就相当于document.getElmentById("#");直接后面赋值就行了呢?this.style.display
2015-12-19
this就是一个引用,它指向一个内部对象,例如你所说的内容、ID等等都可以是一个包装对象。不懂包装对象的话你可以这样理解:
var s = "test"; //创建一个字符串 s.len = 4; //给它设置一个属性 var t = s.len; //查询这个属性
观察上面的代码你可以发现,s明明是一个字符串,字符串怎么有资格设置属性呢对吧?但是你直接赋予字符串s一个len的属性,引擎也不会报错,因为引擎在执行这行代码的时候创建了一个临时对象(要区分开:这个临时对象是另外一个对象,并不是说把字符串s转换成了对象),并生成一个s.len的引用,这个引用就指向这个临时对象,同时你通过“=4”这段代码给这个临时对象赋予了一个值为4的len属性,随即就销毁这个对象。然后你会发现第3行代码输出undefined了,因为s的临时对象已经消亡了。分析到这里,相信你已经了解包装对象和this了。
你后面写的this.style.display很好理解了,假设你要调用的是一个标签,那么这里就是产生那个标签的临时对象,并修改那个标签的display属性,假设你this指向了一个p标签,this.style.display("block");就可以将这个p标签转变成块级元素
举报