我正在尝试构建一个包含画布上下文对象的属性值的字符串。我使用的代码适用于我测试过的所有浏览器,IE 10 除外。代码如下:
getCanvasInfo : function (canvas) {
var props = [],
prop,
ctx = canvas.getContext('2d');
for (prop in ctx) {
if (ctx.hasOwnProperty(prop) &&
prop !== "canvas" &&
typeof ctx[prop] !== "function")
{
props.push(prop);
}
}
return props.sort().map(function (p) {
return p + ": " + ctx[p];
}).join("\n");
}
在 IE 10(移动和桌面)中,if
测试似乎排除了所有属性,props
循环退出时留下一个空数组。我已经在调试器中验证了在进入循环ctx
时确实具有预期的(非功能)属性。for..in
这是怎么回事?