Вложил этот указатель в JavaScript
Я использую библиотеку 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
});
Я пытаюсь получить доступ к прямоугольнику, используя это ключевое слово, но оно не работает
Спасибо!
1 ответ
Решение
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, чтобы справиться с этим.