Lis properties of CanvasRenderingContext2D

Lis properties of CanvasRenderingContext2D

本文关键字:CanvasRenderingContext2D of properties Lis      更新时间:2023-09-26

嗨,我正在尝试列出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 变量,而您可能打算按下"键"

相关文章:
  • 没有找到相关文章