如何在JavaScript中调用属于另一个对象的函数(使用script.aculo.us)

如何在JavaScript中调用属于另一个对象的函数(使用script.aculo.us),javascript,prototypejs,scriptaculous,Javascript,Prototypejs,Scriptaculous,我正在从script.aculo.us dragdrop模块中创建“Draggable”对象的新实例,该模块位于属于我创建的对象的函数中。让我们把这个对象称为“Person”对象。很简单。但是,在可拖动对象中的“onEnd”函数中,我需要调用另一个函数getCell,它也属于前面提到的“Person”对象。有点像循环系统,我知道,但我希望我知道怎么做。我试过的都不管用。能做到吗?下面是一个为简洁而大量编辑的示例,但我希望它能传达我的意图。如果您能在这里提出任何见解,我将不胜感激。谢谢 var P

我正在从script.aculo.us dragdrop模块中创建“Draggable”对象的新实例,该模块位于属于我创建的对象的函数中。让我们把这个对象称为“Person”对象。很简单。但是,在可拖动对象中的“onEnd”函数中,我需要调用另一个函数getCell,它也属于前面提到的“Person”对象。有点像循环系统,我知道,但我希望我知道怎么做。我试过的都不管用。能做到吗?下面是一个为简洁而大量编辑的示例,但我希望它能传达我的意图。如果您能在这里提出任何见解,我将不胜感激。谢谢

var Person = Class.create({
  initialize: function(name) {
    this.name = name;
  },        
  move: function(p) {
    p = new Draggable(p, {     
     onEnd: function(d) {      
      var pos = getCell(d.element);
      .......
      .......
     }
     .......
     .......
    });
  },
  getCell: function(t) {
    var pos = t.positionedOffset();
    return [(pos.left / 64).floor(), (pos.top /64).floor()];
  }
});    
试一试

尝试:

move: function(p) {
    p = new Draggable(p, {     
     onEnd: function(d) {      
      var pos = p.getCell(d.element);
      .......
      .......
     }
     .......
     .......
    });
  },
move: function(p) {
    var getCell = function (el) {
        return p.getCell ( el );
    };

    p = new Draggable(p, {     
     onEnd: function(d) {      
      var pos = getCell(d.element);
      .......
      .......
     }
     .......
     .......
    });
  },
var Person = Class.create({
  initialize: function(name) {
    this.name = name;
  },        
  move: function(p) {
    p = new Draggable(p, {     
     onEnd: function(d) {      
      var pos = this.getCell(d.element);
      .......
      .......
     }.bind(this)
     .......
     .......
    });
  },
  getCell: function(t) {
    var pos = t.positionedOffset();
    return [(pos.left / 64).floor(), (pos.top /64).floor()];
  }
});