javascript - html5画布没有输出文本怎么办?
问题描述
<script>
var canvas = document.getElementById('canvas'),
context = canvas.getContext('2d');
function numText(num,x,y)
{
this.num = num,
this.x = x,
this.y = y;
}
numText.prototype.writeText = function()
{
context.font ='60px Bahnschrift SemiCondensed';
context.fillStyle = 'red';
context.fillText(numText.text,numText.x,numText.y);
}
var text1 = new numText("30",100,225);
text1.writeText();
</script>
我想使用面向对象编程的概念打印出“30”。文字不打印怎么办?
解决方案
你需要纠正两件事:
numText
替换函数this
中对的引用。当您调用该函数时,您会在特定实例的上下文中执行此操作,并使用关键字来引用其属性writeText
this
- 调用时
context.fillText
您使用的是属性text
而不是num
作为第一个参数
更正的代码:
var canvas = document.getElementById('canvas'),
context = canvas.getContext('2d');
function numText(num, x, y) {
this.num = num,
this.x = x,
this.y = y;
}
numText.prototype.writeText = function () {
context.font = '60px Bahnschrift SemiCondensed';
context.fillStyle = 'red';
context.fillText(this.num, this.x, this.y);
}
var text1 = new numText("30", 100, 225);
text1.writeText();
推荐阅读
- django - ValueError:精确查找的 QuerySet 值必须使用切片限制为一个结果
- azure - 如何使用 Terraform 使用 Log Workspace 实现 Azure Monitoring Alert VM Heartbeat
- java - maven-dependeny-plugin 3.2.0 下载 struts 1.3.8
- vue.js - 如何在 Vue 中使用 v-bind 和 v-on 绑定自定义命名模型?
- python - 测试 Selenium 以登录我的 Twitter:它不允许您检查元素
- r - 在 R 中删除准空行
- winapi - 使用 WinAPI 获取串行通信溢出错误指示
- git - 防止单个文件被 git 提交覆盖
- azure-powershell - PowerShell:在 where-object 中使用变量作为脚本块
- qliksense - 非零数后的零数