Назначить ссылку на свойство в JavaScript
Я работаю над небольшим JavaScript-скриптом для редактирования CSS-кода, и я обнаружил, что есть много... особенностей, если можно так выразиться, с Internet Explorer по сравнению с другими браузерами. Например, объект rules объекта document.stylesheet называется cssRule для большинства браузеров и правило для IE.
Здесь я хотел бы назначить ссылку на свойство объекта, содержащего размер окна (window.innerWidth & document.body.clientWidth), чтобы не проверять каждый раз, следует ли использовать имена объектов IE или "нормальный"
Это хорошая / плохая идея?
Перед тем как опубликовать вопрос, я подумал еще немного и нашел решение..
function CommonObject(obj, propertyName){
this.get = function() { return obj[propertyName]; }
}
Есть ли другой / лучший способ сделать это?
Спасибо
(Да, я знаю, что делать это на самом деле не обязательно, тем более, что я делаю небольшой сценарий, а производительность не очень важна, но я в основном проявляю интерес)
1 ответ
Используйте таблицу сопоставления:
var css = {"rules": {"ie":"rule","w3":"cssRule"} }
var browser = !!window.XPathEvaluator ? "w3" : "ie"
var foo = document.styleSheets["0"][css.rules[browser] ]