Пытаюсь выявить наличие определенного параметра в url:
// https://localhost/?_escaped_fragment_=&dima=fil
query = url.parse(options.url, true).query;
if (query && query.hasOwnProperty('_escaped_fragment_')) {
return true;
}
Но возникает ошибка: hasOwnProperty is not a function. Что не так?
Если вывести в консоль, то вот что:
console.log(query.dima); // fil
console.log(query); // [Object: null prototype] { _escaped_fragment_: '', dima: 'fil' }
Метод .hasOwnProperty определен в Object.prototype.
Если же проверить прототип объекта query можно заметить, что его значение null. Именно поэтому и происходит ошибка.
Для решения можно либо воспользоваться скобочной нотацией и проверять на undefined/null
либо применять .hasOwnProperty непосредственно из Object.prototype
Object.prototype.hasOwnProperty.call(query, propName)
Продвижение своими сайтами как стратегия роста и независимости