При работе с JavaScript часто возникают ошибки. Одной из таких ошибок является «Uncaught TypeError: person.hasownproperty не является функцией». Эта ошибка обычно указывает на то, что метод hasOwnProperty
используется неправильно. В этой статье мы рассмотрим различные способы устранения этой ошибки и приведем примеры кода.
Метод 1: правильное использование заглавных букв
JavaScript чувствителен к регистру, и метод hasOwnProperty
должен быть написан точно так, как показано. Убедитесь, что заглавные буквы соответствуют имени метода, так как оно должно начинаться со строчной буквы “h”, а остальные буквы должны быть строчными.
const person = { name: 'John', age: 25 };
// Correct usage of hasOwnProperty
if (person.hasOwnProperty('name')) {
console.log('Property exists!');
} else {
console.log('Property does not exist!');
}
Метод 2: проверьте, имеет ли объект значение NULL или неопределен.
Ошибка также может возникнуть, если объект, для которого вызывается hasOwnProperty
, имеет значение NULL или неопределен. Чтобы избежать этого, убедитесь, что объект определен и не равен нулю, прежде чем использовать hasOwnProperty
.
const person = null;
// Checking if person is null or undefined
if (person && person.hasOwnProperty('name')) {
console.log('Property exists!');
} else {
console.log('Property does not exist!');
}
Метод 3: используйте метод Object.prototype.hasOwnProperty()
Если ошибка не устранена, вы можете напрямую вызвать метод hasOwnProperty
из объекта Object.prototype
.
const person = { name: 'John', age: 25 };
// Using Object.prototype.hasOwnProperty
if (Object.prototype.hasOwnProperty.call(person, 'name')) {
console.log('Property exists!');
} else {
console.log('Property does not exist!');
}
Метод 4: Защита с помощью функции утилиты
Чтобы не повторять одни и те же проверки несколько раз, вы можете создать функцию утилиты, которая обрабатывает проверку hasOwnProperty
и возвращает логическое значение.
function hasOwnProperty(obj, prop) {
return Object.prototype.hasOwnProperty.call(obj, prop);
}
const person = { name: 'John', age: 25 };
if (hasOwnProperty(person, 'name')) {
console.log('Property exists!');
} else {
console.log('Property does not exist!');
}
Ошибка «Uncaught TypeError: person.hasownproperty is not a function» часто возникает из-за неправильного использования метода hasOwnProperty
в JavaScript. Обеспечивая правильное использование заглавных букв, проверяя наличие нулевых или неопределенных объектов, используя Object.prototype.hasOwnProperty()
или создавая служебную функцию, вы можете эффективно устранить эту ошибку и повысить надежность вашего кода JavaScript.
Не забывайте всегда дважды проверять свой код и использовать правильные методы обработки ошибок, чтобы выявлять и устранять непредвиденные ошибки в ваших приложениях JavaScript.