Я не очень хорош с чем-либо, кроме базового javascript, поэтому, пожалуйста, простите простой вопрос.Javascript - получить переменную изнутри локальной области функции
Я пользуюсь библиотекой jsDraw2D. Эта библиотека имеет графический объект, который выглядит примерно следующим:
function jsGraphics(canvasDivElement) {
var canvasDiv;
this.drawLine = drawLine;
function drawLine(point1, point2) {
// do things with canvasDiv
}
}
Вы использовать его как это:
var gr = new jsGraphics(document.getElementById('canvas'))
gr.drawLine(new jsPoint(0,0), new jsPoint(10,10))
Я хотел бы добавить функцию jsGraphics, так что я могу назвать
gr.getCanvasElement()
Есть ли способ сделать это без редактирования самой библиотеки?
Я попытался
jsGraphics.prototype.getCanvasElement = function() { return canvasDiv }
, но это не похоже на работу. У меня есть интуитивное чувство, что его что-то с этим новым ключевым словом, но если бы вы могли объяснить, почему именно это не так полезно.
Вы передаете 'document.getElementById ('canvas')' в 'jsGraphics' именно так? Если вы, вы можете просто вызвать 'document.getElementById ('canvas')', чтобы получить то же самое, что и 'canvasDiv'. –
Хорошо, что я хочу на самом деле не canvasDiv, а ширину/высоту, которая будет использоваться в некоторых упрощающих методах фасада, которые я планирую добавить. Однако на самой странице будет много объектов jsGraphics, и мне придется работать с каждым по очереди. –