为了账号安全,请及时绑定邮箱和手机立即绑定

这个????

这个????

潇湘沐 2019-06-29 17:34:44
这个????将实例方法用作事件处理程序的回调,将更改this从…“我的例子”到“不管是什么叫回调”..所以我的代码是这样的function MyObject() {   this.doSomething = function() {     ...   }   var self = this   $('#foobar').bind('click', function(){     self.doSomethng()     // this.doSomething() would not work here   })}这是可行的,但这是最好的方法吗?我觉得很奇怪。
查看完整描述

3 回答

?
MMTTMM

TA贡献1869条经验 获得超4个赞

是的,这似乎是一个共同的标准。有些程序员用自我,有些人用我。它被用作对“真实”对象的引用,而不是事件。

这件事花了我一段时间才真正得到,一开始确实很奇怪。

我通常是在对象的顶部(请原谅我的演示代码-它比其他任何东西都是概念性的,而不是关于优秀的编码技术的一课):

function MyObject(){
  var me = this;

  //Events
  Click = onClick; //Allows user to override onClick event with their own

  //Event Handlers
  onClick = function(args){
    me.MyProperty = args; //Reference me, referencing this refers to onClick
    ...
    //Do other stuff
  }}


查看完整回答
反对 回复 2019-06-29
?
泛舟湖上清波郎朗

TA贡献1818条经验 获得超3个赞

var functionX = function() {
  var self = this;
  var functionY = function(y) {
    // If we call "this" in here, we get a reference to functionY,
    // but if we call "self" (defined earlier), we get a reference to function X.
  }}

编辑:尽管如此,在一个对象中嵌套的函数将使用全局窗口对象,而不是周围的对象。


查看完整回答
反对 回复 2019-06-29
  • 3 回答
  • 0 关注
  • 443 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信