嗨我想列出CanvasRenderingContext2D對象的所有方法和屬性。我在列表方法中取得成功,但是當我嘗試列出屬性時,我得到了奇怪的結果。我得到的只是一個重複多次的相同屬性的數組。任何人都可以幫助我呢?CanvasRenderingContext2D的Lis屬性
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>
你總是推的最後一個方法了。 ('properties.push(米)')。此外,方法是屬性,如果不檢查方法是否是方法,則會獲取兩次。 – Kaiido