嗨,我想列出CanvasRenderingContext2D对象的所有方法和属性。我继承了列表方法,但是当我试图列出属性时,我得到了奇怪的结果。我得到的只是同一个属性的一个数组重复多次。有人能帮我吗?
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>
发布于 2016-01-26 13:22:16
这一行(在声明属性变量之后):
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变量
https://stackoverflow.com/questions/35014755
复制相似问题