#javascript #function
#javascript #функция
Вопрос:
Может кто-нибудь объяснить мне, что происходит в следующем коде? Спасибо.
let myObject = {
myFunction() {
console.log('HELLO WORLD');
}
};
console.log(JSON.stringify(myObject.myFunction));
if (myObject.myFunction) {
console.log('myFunction exists');
}
Ответ №1:
Как описано в MDN, JSON.stringify
возвращает undefined
, когда функция передается в качестве аргумента:
неопределенные, функции и символы не являются допустимыми значениями JSON. Если какие-либо такие значения встречаются во время преобразования, они либо опускаются (при нахождении в объекте), либо изменяются на null (при нахождении в массиве). JSON.stringify() может возвращать неопределенное значение при передаче «чистых» значений, таких как JSON.stringify(function(){}) или JSON.stringify(не определено).
Ответ №2:
Поскольку JSON.stringify() не может использоваться для функций, они обрабатываются как undefined
. Смотрите Объяснение здесь .