Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
赋值为';这';在JavaScript构造函数中_Javascript_Html_Canvas_This - Fatal编程技术网

赋值为';这';在JavaScript构造函数中

赋值为';这';在JavaScript构造函数中,javascript,html,canvas,this,Javascript,Html,Canvas,This,我正在学习JavaScript,目前正在使用html5画布api。因为我首先要创建canvas元素,然后再获取2d/3d上下文(这是两个未连接的变量),所以创建将这两个元素合并为一个的东西似乎是合乎逻辑的 想法是让graphics(gfx)对象(实际上是上下文对象)和graphics.canvas引用canvas元素,这样我就可以执行类似gfx.fillRect(0,015,75)的操作并可能使用gfx.canvas.width=x重新调整画布的大小等 当我尝试创建一个构造函数时,它并没有真正起

我正在学习JavaScript,目前正在使用html5画布api。因为我首先要创建canvas元素,然后再获取2d/3d上下文(这是两个未连接的变量),所以创建将这两个元素合并为一个的东西似乎是合乎逻辑的

想法是让graphics(
gfx
)对象(实际上是上下文对象)和
graphics.canvas
引用canvas元素,这样我就可以执行类似
gfx.fillRect(0,015,75)的操作并可能使用
gfx.canvas.width=x重新调整画布的大小

当我尝试创建一个构造函数时,它并没有真正起作用,我想出了一个解决方案,用
canvas
作为属性返回
context
对象,但我不确定这是否正确

解决此问题的最佳方法是什么?

这是我的密码:

函数画布(上下文、宽度、高度){
var canvas=document.createElement('canvas'),
contex=canvas.getContext(上下文);

this=contex;//
是JavaScript中的保留字,引用只读上下文变量。您无法重新分配它

如果没有理由不能继续使用
contex
变量,请这样做。如果需要创建局部变量,请将其命名为其他变量:

var that = contex;

是JavaScript中的保留字,并引用只读上下文变量。您无法重新分配它

如果没有理由不能继续使用
contex
变量,请这样做。如果需要创建局部变量,请将其命名为其他变量:

var that = contex;

使用ES2015,您可以

Object.assign(this, contex)

使用ES2015,您可以

Object.assign(this, contex)


您不能将
分配给任何对象。它是只读的。您不能简单地更改
指针。这是ecmascript。@js1568如果您不解释您的操作,这是一个无用的注释mean@LeeTaylor我想你说错了。你的意思可能是“你不能给这个
分配任何东西。”@伊恩有点模棱两可,是的。你不能把
这个
分配给其他东西!你不能把
这个
分配给任何东西。它是只读的。你根本不能更改
这个
指针。那是ecmascript。@js1568如果你不解释你要做的事情,这是一个无用的注释mean@LeeTaylor我想你说错了,你可能是故意的“您不能将任何内容分配给
”@Ian有点模棱两可,是的。您不能将
分配给其他对象!
contex
是故意拼写错误的。它指的是从
canvas.getContext(context)检索的上下文对象
,而
context
是我的构造函数的参数,它的值是一个字符串
'2d'| |'3d'
。我不确定这是如何创建全局变量的,你能解释一下吗?@Jinx那么你需要把
var
放在它前面,除非你想让变量是全局的。那么,实现某些事情的首选方法是什么呢像这样?我的意思是,我的第二个解决方案可以接受还是有其他方法?@Jinx我明白了。我建议缩进该声明的第二行,因为您的非标准格式令人困惑。仍然不清楚为什么不能简单地使用
contex
变量。(您可能想在匿名函数中使用
contex
而不是
this
contex
是故意拼写错误的。它指的是从
canvas.getContext(context)检索的上下文对象
,而
context
是我的构造函数的参数,它的值是一个字符串
'2d'| |'3d'
。我不确定这是如何创建全局变量的,你能解释一下吗?@Jinx那么你需要把
var
放在它前面,除非你想让变量是全局的。那么,实现某些事情的首选方法是什么呢像这样?我的意思是,我的第二个解决方案可以接受还是有其他方法?@Jinx我明白了。我建议缩进该声明的第二行,因为您的非标准格式令人困惑。仍然不清楚为什么不能简单地使用
contex
变量。(您可能也希望在匿名函数中使用
contex
而不是
this
。)