在javascript中嵌套这个指针

时间:2015-04-16 17:07:17

标签: javascript draw2d

我正在使用draw2d js库。我有以下代码在画布上创建一个矩形。

 var rect = new draw2d.shape.basic.Rectangle({x:20,y:30});
 rect.on("click", function(){
     //var that = this;
    alert("test");
// I'm trying to access rect using this keyword but its not working
    var c = new draw2d.Connection();
    this.createPort('hybrid'); // adds a port on the rectangle



});

我正在尝试使用此关键字访问rect,但它无法正常工作

谢谢!

1 个答案:

答案 0 :(得分:0)

该上下文中的

this未引用rect,而是指您向on提供的匿名函数:

function(){
  alert("test");
  var c = new draw2d.Connection();
  this.createPort('hybrid'); // adds a port on the rectangle
} // => This is what `this` refers to.

您可以直接引用rect

var rect = new draw2d.shape.basic.Rectangle({x:20,y:30});
rect.on("click", function(){
  alert("test");
  var c = new draw2d.Connection();
  rect.createPort('hybrid'); // adds a port on the rectangle
});

this是一个相当棘手的JavaScript。我建议您阅读Mozilla's guide以更好地理解它。