Javascript 理解matter.js的Box代码:this、push和pop
我是JavaScript新手,很难直观地理解下面的代码片段。它是一些物理引擎(matter.js)中用来制作盒子的代码 我的问题是:Javascript 理解matter.js的Box代码:this、push和pop,javascript,this,matter.js,Javascript,This,Matter.js,我是JavaScript新手,很难直观地理解下面的代码片段。它是一些物理引擎(matter.js)中用来制作盒子的代码 我的问题是: 为什么不使用w或h,为什么将“this.w”指定给w,将“this.h”指定给h 我被推弄糊涂了。为什么括号里什么都没有?默认情况下它添加了什么 pop()也是这样。这是什么 为什么不使用w或h,为什么将“this.w”指定给w,将“this.h”指定给h 这使w和h成为长方体的属性。之后,如果你要说 box1 = new Box(10,10,10,10) c
- 为什么不使用w或h,为什么将“this.w”指定给w,将“this.h”指定给h
- 我被推弄糊涂了。为什么括号里什么都没有?默认情况下它添加了什么
- pop()也是这样。这是什么李>
box1 = new Box(10,10,10,10)
console.log(box1.w, box1.h)
您将能够查看和操作这些属性。因为您的矩形正在使用这些属性来绘制自身,如果您操作这些属性,则矩形的绘制也将更改
我被推弄糊涂了。为什么括号里什么都没有?默认情况下它添加了什么
我相信您正在研究利用p5.js库的代码pop()
访问绘图状态。本质上,push()
是“开始绘图”,而pop()
是“停止绘图”。因此,在这里,他们访问绘制状态,绘制一个矩形,然后关闭绘制状态
您可以阅读更多关于p5的内容。共享
push()
和pop()
push
和pop
的实现,图形库通常使用它们来控制绘制内容的变化。push
推送要应用的新转换,发生translate
转换,使用当前转换绘制rect
,然后pop
弹出(删除)当前转换,这样它就不会影响正在绘制的任何其他转换。因为show()
不在原型上
,在实例上初始化w
和h
在这里没有任何好处(除了使它们在构造函数之外是可变的)。通常,成员方法应该定义为Box.prototype.show=function(){…}
在构造函数外部,在这种情况下,需要在实例上初始化w
和h
。此关键字指它所属的对象。这里我们不能使用w或h,因为它们只是函数框的局部变量,或者我们可以说它们具有块级别的作用域,因此不能在该块之外使用。
box1 = new Box(10,10,10,10)
console.log(box1.w, box1.h)