这个????

这个????

将实例方法用作事件处理程序的回调,将更改this从…“我的例子”“不管是什么叫回调”..所以我的代码是这样的

function MyObject() {
  this.doSomething = function() {
    ...
  }

  var self = this
  $('#foobar').bind('click', function(){
    self.doSomethng()
    // this.doSomething() would not work here
  })}

这是可行的,但这是最好的方法吗?我觉得很奇怪。


潇湘沐
浏览 444回答 3
3回答

MMTTMM

是的,这似乎是一个共同的标准。有些程序员用自我,有些人用我。它被用作对“真实”对象的引用,而不是事件。这件事花了我一段时间才真正得到,一开始确实很奇怪。我通常是在对象的顶部(请原谅我的演示代码-它比其他任何东西都是概念性的,而不是关于优秀的编码技术的一课):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   }}

泛舟湖上清波郎朗

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.   }}编辑:尽管如此,在一个对象中嵌套的函数将使用全局窗口对象,而不是周围的对象。
打开App,查看更多内容
随时随地看视频慕课网APP