chrome's javascript console поведение: оценивать объекты Lazily
var s = ["hi"]; Консоль.log (ы); s [0] = "пока"; console.log (s);
var s = ["hi"]; console.log(s); s[0] = "bye"; console.log(s);в Firefox, консоль выходов:
["hi"] ["bye"]
var s = ["hi"]; console.log(s); s[0] = "bye"; console.log(s);, однако, в Chrome версии 7.0.517.41 бета, выход:
["bye"] ["bye"]
var s = ["hi"]; console.log(s); s[0] = "bye"; console.log(s);
неожиданное поведение оценки
это поведение предполагает, что консоль Chrome может быть "ленивой" при оценке объектов. Когда выполняется первая оператор Console.Log, консоль ссылается на объект в памяти. Любые последующие модификации объекта, такие как изменение первого элемента с «hi» на «пока», не отражаются на выводе первой консоли. Это подразумевает, что консоль оценивает только объект во время первого оператора Console.log и хранит снимок.
Объяснение
это поведение задокументировано в следующем ошибке Webkit: https://bugs.webkit.org/show_bug. зафиксированный). Ошибка гласит, что консоль Chrome не выполняет ленивую оценку для объектов, доступных непосредственно, что приводит к наблюдаемому поведению.
обходной путь
. Это заставляет Chrome создавать представление объекта, который не изменяется в результате последующих изменений, гарантируя, что вывод консоли отражает текущее состояние объекта.var s = ["hi"]; console.log (s.toString ()); s [0] = "пока"; console.log (s.toString ());
var s = ["hi"]; console.log(s); s[0] = "bye"; console.log(s);output:
hi пока
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3