У меня есть оценщик, который возвращает объект, указывающий, показывать или не показывать определенные элементы на странице и содержит более 50 отдельных оценок. Таким образом, нелегко просто взглянуть на него, чтобы обнаружить недопустимое использование элементов объекта. Вот упрощенный пример вопроса, который я хотел бы найти инструмент, чтобы помочь мне адрес:Обнаружение недопустимого использования членов объекта
var simpleExample = {
evaluationSet1: {
foo: true
},
evaluationSet2: {
bar: true
},
showButton: null
};
//Accidental mis-use
simpleExample.showButton = simpleExample.evaluationSet1.bar && simpleExample.evaluationSet2.bar;
В приведенном выше примере, showButton не оценивается должным образом и будет ложным, поскольку evaluationSet1.bar не определен на объект. Правильный синтаксис будет:
simpleExample.showButton = simpleExample.evaluationSet1.foo && simpleExample.evaluationSet2.bar;
Есть ли инструмент, который может помочь обнаружить такого рода недопустимого потребительной случае? Я попробовал Jshint и Jslint, но ни один из них не смог его пометить.
Машинопись ...... –
Нет, не могу использовать это в нашем приложении, и мы пока не работаем на ECMA6. –
Я в основном шутил. ;-) Я не думаю, что будет инструмент, который может сделать это без более сильной типизации, учитывая динамическую природу javascript. То, что вы написали, является технически обоснованным. Если у параметра оценкиSet1 нет свойства бара, когда вы вызываете оценкуSet1.bar, угадайте, что теперь у вас есть! Это может быть неопределенным, но оно все еще существует. –