视频中的问题提问

视频中的问题提问

该视频中有一句代码:
this.r = this.ctx.canvas.width / (2 + 4 * n); // 公式计算
这里用this.canvas就能获取canvas画布的宽度了吧,为什么还要用this.ctx.canvas通过上下文来获取canvas的宽度呢?这样做有什么好处?

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好,同学说的是正确的,但是老师在第一次回答的时候也说了哦,在这个问题里面,获取是一样的,用谁都是可以的,但是如果要进行其他操作,还是建议使用this.ctx上面的属性,比如绘制动画。同学再往后学就知道了。

如果我的回答帮助了你,欢迎采纳,祝学习愉快!

好帮手慕粉 2020-02-14 18:41:45

同学你好,虽然结果是一样的,但是是在不同对象上面的,this指代的是window,canvasLock:

http://img1.sycdn.imooc.com//climg/5e46794c09b76bd812410225.jpg

上面有一个canvas属性和一个ctx属性,ctx是通过canvas.getContext('2d')获取出来的,通常在ctx上面绘制。但是获取canvas宽高属性值,通过两个属性都是可以的,所以this.canvas.width  和    this.ctx.canvas.width都可以使用。

如果我的回答帮助了你,欢迎采纳,祝学习愉快!

  • 提问者 人生的起源 #1
    this.canvas我知道,是获取页面的canvas元素 this.ctx.canvas又是什么意思呢,通过canvas获取到上下文,然后又通过上下文去获取canvas,感觉有点多余? 毕竟这里的this.ctx已经等价于this.canvas.ctx了,像视频中这样写,不就变成this.canvas.ctx.canvas了?
    2020-02-14 18:53:04
  • 提问者 人生的起源 #2
    有一句写错了,纠正一下 毕竟这里的this.ctx已经等价于this.canvas.getContext('2d')了,像视频中这样写,不就变成this.canvas.getContext('2d').canvas了?
    2020-02-14 19:01:11
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
组件化思想开发电商网页 18版
  • 参与学习           人
  • 提交作业       467    份
  • 解答问题       4826    个

本路径带你通过系统学习HTML5、JavaScript、jQuery的进阶知识,不仅如此,还会学习如何利用组件化的思想来开发网页,知识点+案例,使得所学可以更好的得到实践。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师