Lis properties of CanvasRenderingContext2D
Lis properties of CanvasRenderingContext2D
嗨,我正在尝试列出CanvasRenderingContext2D对象的所有方法和属性。我在列出方法方面取得了成功,但是当我尝试列出属性时,我得到了奇怪的结果。我得到的只是重复多次相同属性的 ana 数组。有人可以帮助我吗?
var canvas = document.querySelector('#canvas');
var ctx = canvas.getContext('2d');
var methods = [];
for (var m in ctx) {
if (typeof ctx[m] == "function") {
methods.push(m);
methods.join(',');
}
}
var methodsContainer = document.querySelector('#methods');
for(var i = 0; i < methods.length; i++) {
var opt = methods[i];
var el = document.createElement("option");
el.textContent = opt;
el.value = opt;
methodsContainer.appendChild(el);
}
var properties = [];
for (var key in ctx) {
if (Object.getOwnPropertyNames(ctx)) {
properties.push(m);
properties.join(',');
}
}
var propertiesContainer = document.querySelector('#properties');
for(var i = 0; i < methods.length; i++) {
var opt = properties[i];
var el = document.createElement("option");
el.textContent = opt;
el.value = opt;
propertiesContainer.appendChild(el);
}
<canvas id="canvas"></canvas>
<h5>Methods</h5>
<select id="methods">
</select>
<br/>
<h5>Properties</h5>
<select id="properties">
</select>
此行(声明属性变量后):
for(var i = 0; i < methods.length; i++) {
应该是:
for(var i = 0; i < properties.length; i++) {
你用于循环方法具有值的次数,而你应该循环属性
此行还:
for (var key in ctx) {
if (Object.getOwnPropertyNames(ctx)) {
properties.push(m);
properties.join(',');
}
}
您正在推动 m 变量,而您可能打算按下"键"
相关文章:
- 没有找到相关文章