gpt4 book ai didi

Javascript - 从函数的局部范围内获取变量

转载 作者:行者123 更新时间:2023-11-28 11:28:49 25 4
gpt4 key购买 nike

除了基本的 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 }

但这似乎不起作用。我有一种直觉,它与新关键字有关,但如果您能准确解释为什么它不存在,那也会有帮助。

最佳答案

不,这不是使用普通的 JavaScript 基于原型(prototype)的继承,而是向 jsGraphics 的每个实例添加一个单独的 drawLine 函数,每个实例的周围都有一个闭包自己的canvasDiv变量。

一旦 function jsGraphics() { 关闭 } 就根本没有其他方法可以访问 canvasDiv 变量,除非内部函数之一提供对它的访问。这通常是故意这样做的,目的是为了创建私有(private)变量,明确地阻止您获取 canvasDiv。

关于Javascript - 从函数的局部范围内获取变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1644275/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com