gpt4 book ai didi

JavaScript 嵌套函数原型(prototype)作用域

转载 作者:行者123 更新时间:2023-12-04 01:06:49 25 4
gpt4 key购买 nike

我仍然无法弄清楚如何在 JavaScript 中管理范围。在这个特定示例中,我有一个包含某些属性的绘图函数和一个需要基于数组绘制线条的函数。

function Draw (canvas)
{
this.ctx = canvas.getContext('2d');
this.street_size = 20;
}

Draw.prototype.street = function (MAP)
{

MAP.forEach(function (name)
{
this.ctx.moveTo(name.start.x,name.start.y);
this.ctx.lineTo(name.end.x,name.end.y)
this.ctx.stroke();
});
}

当然,forEach 函数内部的“this.ctx”返回“undefined”。我怎样才能确保 Draw() 的变量被传递给 forEach 函数(不做类似 ctx = this.ctx 的事情)?

最佳答案

您可以使用 .bind [MDN] :

MAP.forEach(function (name) {
this.ctx.moveTo(name.start.x,name.start.y);
this.ctx.lineTo(name.end.x,name.end.y)
this.ctx.stroke();
}.bind(this));

Learn more about this.

关于JavaScript 嵌套函数原型(prototype)作用域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14804718/

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