js面向对象this的问题 本帖最后由 blueweiwei 于 2010-01-21 16:02:42 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 楼主你不觉得两个this到底是哪个吗 参见:http://www.jslab.org.cn/?tag=WhatIsThis 楼主可以搜搜js的作用域。 $("id")的时候,this指的是id的dom对象。 首先告诉楼主一个简单的规则: 在javascript 中调用一个函数的时候, 函数中的this的指向是方法名前的.的那个对象(很绕口,看例子吧)比如 a.b(); 如果b中有this则 b中的this指向1 在比如a.b.c(); 指向的就是a.b这个对象。而如果b() 也就是说调用b函数时前面没有对象 则b中this指向window.//this.click_event=function(){$('link').onclick=function(){this.alert_color()}}向你这句话'$('link').onclick=function(){this.alert_color()}'。当按钮被点击时也就是 按钮.onclick() (this指向按钮对象) 而按钮那个对象中并没有 alert_color这个属性。所以就错了。 var _this=this; $('link').onclick=function(){_this.alert_color()}而这个种你吧this赋值给_this . _this是一个局部变量 而并非那个关键字this. 要知道其中的原理, 还请楼主仔细查阅javascript 闭包,作用域,作用域链 等相关信息。 只说一句this与其他语言的this不一样,楼主不要定势思维 CHECKBOX只要先择一个或一个以上的话,可以提交FORM。 菜鸟求助 js动态改变网页背景图片,为什么每次变换时都要闪一下? QQ新闻提示框 js如何实现像QQ邮箱编写邮件时候选择邮箱的传值 json对象转换成json字符串 JAVASCRIPT IE 没问题 firefox 跑不起来? 兼容 falsh javasript 之间的调用 在线等 一个简单问题!!!马上结帐在javaScript里怎么加入 asp??? 高分求救! checkbox属性设为disabled,在层中,当鼠标一移checkbox就触发onmouseout事件,仅在于火狐。 大虾们帮忙看看JS选项卡问题。。。
$("id")的时候,this指的是id的dom对象。
比如 a.b(); 如果b中有this则 b中的this指向1 在比如a.b.c(); 指向的就是a.b这个对象。
而如果b() 也就是说调用b函数时前面没有对象 则b中this指向window.
//this.click_event=function(){$('link').onclick=function(){this.alert_color()}}
向你这句话'$('link').onclick=function(){this.alert_color()}'。当按钮被点击时
也就是 按钮.onclick() (this指向按钮对象) 而按钮那个对象中并没有 alert_color这个属性。所以就错了。
var _this=this;
$('link').onclick=function(){_this.alert_color()}
而这个种你吧this赋值给_this . _this是一个局部变量 而并非那个关键字this. 要知道其中的原理, 还请楼主仔细查阅javascript 闭包,作用域,作用域链 等相关信息。