LINUX.ORG.RU

Console.log в chrome

 ,


0

3

В ноде добавил ф-цию

w=console.log
, чтобы не печатать лишнего, все работает. Попробовал в Chrome, пишет Uncaught TypeError: Illegal Invocation. Я знаю, можно написать, типа:
w=(function(x) {console.log(x)})
и все работает, но интересно, все-таки, почему первый вариант не работает? Ведь должен по-идее.



Последнее исправление: phill (всего исправлений: 1)

Тут пишут, что для console.log нужно передать window в качестве this (там про alert правда). Еще попробовал замыкание сделать - тоже не работает.

Кстати в Firefox все без проблем работает.

Black_Roland ★★★★
()

Вот так можно:

w = console.log.bind(console);

Вот тут про тоже самое вопрос: https://stackoverflow.com/questions/5133649/alias-to-chrome-console-log

When you write cl();, you're calling log in the global context.
Chrome's console.log doesn't want to be called on the window object.

Black_Roland ★★★★
()
Последнее исправление: Black_Roland (всего исправлений: 2)
Ответ на: комментарий от Black_Roland

Спасибо, да, так все работает. По вашему методу можно решить, наверное, любую подобную проблему:

w=console.log.bind(console)
w=document.write.bind(document)
Видимо, DOM-объекты не являются полноценными объектами языка. А жаль.

phill
() автор топика
Ответ на: комментарий от anonymous

Видимо ты просто не понимаешь красоту жусу-ООП

Ну так просвяти.

А document.write это вообще нехорошо.

Это почему (хотя к сабжу отношения не имеет, в любом случае).

phill
() автор топика
Ответ на: комментарий от phill

Это почему (хотя к сабжу отношения не имеет, в любом случае).

/

Это почему (хотя к сабжу отношения не имеет, в любом случае)?

Это был вопрос, вопр знак не поставил:)

//fixed

phill
() автор топика

Вести разработку с отключенными предупреждениями и без валидации кода, наобум без чтения документации все равно, что с закрытыми глазами и ушами - конечно будет интересно все... Этой привычкой не следует злоупотреблять - нужно настроить среду разработки на проверку ошибок на лету как минимум, если лень читать основы языка. Нормальные редакторы и среды, осмысленные подходы, позволяют это делать.

Документация и достаточно исчерпывающая для ознакомления вообще с JS: https://developer.mozilla.org/en-US/docs/Web/JavaScript

swwwfactory ★★
()
Последнее исправление: swwwfactory (всего исправлений: 2)
Ответ на: комментарий от phill

Два дня не некропост

function MyClass(){};
MyClass.prototype.run = function(){ console.log(this); };

var x = new MyClass;
x.run(); // [object Object]
var y = x.run;
y(); // [object Window] или undefined если режим strict (см. "use strict")

Так что DOM там не при чём.

document.write() — перезаписывает документ, если его загрузка к этому моменту уже была завершена. AFAIR, ещё и асинхронным js loader'ам мешает.

Deleted
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.