赋值为';这';在JavaScript构造函数中
我正在学习JavaScript,目前正在使用html5画布api。因为我首先要创建canvas元素,然后再获取2d/3d上下文(这是两个未连接的变量),所以创建将这两个元素合并为一个的东西似乎是合乎逻辑的 想法是让graphics(赋值为';这';在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重新调整画布的大小等 当我尝试创建一个构造函数时,它并没有真正起
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
。)