gpt4 book ai didi

javascript - 当我初始化 Canvas 对象时,保留上下文引用是否更好

转载 作者:行者123 更新时间:2023-12-03 04:58:47 24 4
gpt4 key购买 nike

在初始化 Canvas 对象时保留上下文引用是否更好..

var Obj1 = 
{
Init: function(ctx)
{
this.Ctx = ctx;
},

Draw: function()
{
this.Ctx.drawImage(img, x, y, width, height);
}
};

或者传递上下文以供每次调用使用更好?

var Obj2 = 
{
Init: function()
{

},

Draw: function(ctx)
{
ctx.drawImage(img, x, y, width, height);
}
};

提前致谢。

最佳答案

如果上下文是一个全局变量,则访问它会花费一点时间,因为 Javascript 必须搜索原型(prototype)树才能找到它。在这种情况下,如果函数使用它两次以上,那么传递它可以提高性能。

如果您将其作为对象的属性,那么如果您随后传递它,而不是通过 this 访问它,则会产生很小(非常小的)时间损失。

你也可以关闭它

const myObject = (function(){
var ctx; // as closure variable
return {
init(){
ctx = canvas.getContext("2d");
},
drawSomething(){
ctx.drawImage(image,0,0);
}
}
}());

在 Javascript 的某些实现中,这是最快的,但差异非常小,并且仅成为一个因素,具体取决于它的使用频率以及使用之间有多少代码。

最终,个人风格和用法将决定您如何访问此类变量/属性。

关于javascript - 当我初始化 Canvas 对象时,保留上下文引用是否更好,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42317525/

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