在一个闭包中使用jquery的某些功能时,会有this覆盖的问题eg:
function a () {
this.name = 'a';
$("#container").click(function () {
// 这里this指向了#container的DOM,是否有比较优雅的解决方案获取外部的this.name = 'a'?
});
}现在找到的方法是在进入jquery前保存this,但是这样显然破坏了oop的封装原则。其实虽然知道JS本不是oop语言,不过鉴于其语法弹性之大超过我这个js新手的可预计范畴,还望各位多多指教,
function a () {
this.name = 'a';
$("#container").click(function () {
// 这里this指向了#container的DOM,是否有比较优雅的解决方案获取外部的this.name = 'a'?
});
}现在找到的方法是在进入jquery前保存this,但是这样显然破坏了oop的封装原则。其实虽然知道JS本不是oop语言,不过鉴于其语法弹性之大超过我这个js新手的可预计范畴,还望各位多多指教,
解决方案 »
- jquery 日期插件 把月 年 改成 年 月
- JS 高手们 救命啊 我很着急 给个 代码好吗 谢谢
- 这段js代码要实现的功能是什么,涉及到google的jsapi。
- 有关js锁定页面急~~~~~~~~~~~~!
- 求助 关于js点击获取图片地址的问题
- 脚本取表中数据问题,100分,谢谢
- 一个图片轮播脚本问题javascript
- 如何取得document.selection在整个文本串中的索引
- 一个简单问题的困惑?
- 希望点下左键后,在整个click执行完毕前,不再响应click事件,求大神!
- 求问一个初级问题,html中submit控件点击后发了什么
- 为何通过设置canvas的style来控制其长宽,画出的图会变成2倍?
this.name = 'a';
var that = this;
$("#container").click(function () {
alert(that.name);
});
}
而var name = value;则是私有变量,只在函数运行的上下文出现,无法在外部调用到?
var _this = this;
this.name = 'a';
$("#container").click(function () {
alert(_this.name);
});
}这是最通用的做法