我有一个在整个方法中使用某些属性的类。
function MyClass(elementSelectors) {
this.elements = {};
for (var elementSelector in elementSelectors) {
this.elements[elementSelector] = document.querySelector(elementSelector);
}
}
myClass.prototype.usesAnElement = function () {
console.log(this.elements['header']);
};
var elementSelectors = {
headr: '[class="header"]' // this is sort of an error?
}
var myClass = new MyClass();
现在我在想未来的错误。如果有人意外拼错房产怎么办?我想知道是否有一种秘密方式只需要某些属性(除了在包含可能性的单独数组中检查它们)。
答案 0 :(得分:0)
您可以根据可用的地图测试该属性,只有在有效的情况下才尝试使用该属性
//available properties
avail = {
"header": true, //or anything that evaluates to true
"foo": true,
"bar": true
}
//test if a property is valid before trying to do something with it
if (Object.prototype.hasOwnProperty.call(avail, elementSelector)) {
this.elements[elementSelector] = document.querySelector(elementSelectors[elementSelector]);
}
修改强>
或者,如果您不关心IE8支持,或者不介意为indexOf
添加polyfill,则可以使用数组(下面建议的解决方案)。