Можно ли добавить точку в имени переменной в Javascript?

100
9

Я использую console.log(value) однако, когда я использую console.log() Если бы я хотел поиграть с вещами и сделать так, чтобы делать другие вещи, я могу создать такую функцию, как...

var console.log = (function() {//something }

спросил(а) 2016-03-17T14:13:00+03:00 4 года, 8 месяцев назад
1
Решение
82

Вы можете создать оболочку для функции console.log а затем использовать свою оболочку только для записи на консоль:

function myCustomConsoleLog() {
// do stuff with your arguments
console.log(arguments)
}

Теперь вместо вызова console.log(vars) вы сделали бы вызов myCustomConsoleLog(vars).

ответил(а) 2016-03-17T14:17:00+03:00 4 года, 8 месяцев назад
71

Вам не нужно снова объявлять console.log поскольку он уже объявлен.

В Javascript console является глобальной переменной. Ничто не мешает вам добавлять, редактировать или удалять из него свойства.

Итак, да, вы можете просто назначить другую функцию console.log или тому, что вам нужно:

console.log = function(foo, bar) { ... }
console.anotherProperty = { ... }

Если, однако, вы пытались создать переменную foo.bar которая еще не существует, вы можете сделать это разными способами:

// first approach
var foo;
foo.bar = function() { ... };

// second approach
var foo = {
bar: function() { ... };
};

// third approach
var fnBar = function() { ... };
var foo = { bar: fnBar };

Подробнее см. В документах консоли API и работе с объектами.

ответил(а) 2016-03-17T14:30:00+03:00 4 года, 8 месяцев назад
42

Я думаю, вы могли бы сделать что-то вроде этого:

var console = {}
console.log = "alert me!"
alert(console.log);

Это ты имел в виду?

ответил(а) 2016-03-17T14:24:00+03:00 4 года, 8 месяцев назад
43

вы можете сделать то же самое, например:

var console = {log:function(){  }};

ответил(а) 2016-03-17T14:23:00+03:00 4 года, 8 месяцев назад
41

Это невозможно, как вы пытаетесь.

Что вы можете сделать, так это создать объект и добавить к нему некоторые объекты:

var obj = {}; // we create an object where we will add the functions
obj.i = 4; // a value
obj.log = function() { }; // a function

ответил(а) 2016-03-17T14:15:00+03:00 4 года, 8 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема