在Javascript中是否可以在变量名中添加点?

在Javascript中是否可以在变量名中添加点?,javascript,Javascript,我使用的是console.log(value)但是当我使用console.log()时,如果我想处理一些东西并让它做其他事情,有没有一种方法可以创建一个像 var console.log=(function(){//something}您尝试的方式不可能做到这一点 您可以创建一个对象并向其中添加一些对象: var obj = {}; // we create an object where we will add the functions obj.i = 4; // a value obj.l

我使用的是
console.log(value)
但是当我使用
console.log()
时,如果我想处理一些东西并让它做其他事情,有没有一种方法可以创建一个像


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

您尝试的方式不可能做到这一点

您可以创建一个对象并向其中添加一些对象:

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

您可以为
console.log
函数创建包装器,然后仅使用包装器写入控制台:

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

现在,您不必调用
console.log(vars)
而是可以调用
myCustomConsoleLog(vars)

您也可以这样做,如:

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

我想你可以这样做:

var console = {}
console.log = "alert me!"
alert(console.log);
这就是你的意思吗?

你不需要再次声明
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 };

有关和的详细信息,请参阅。

据我所知,不能在变量名中添加点。var name.log不起作用。点表示法表示对象中的键,而不是普通的变量名。因此,您可以这样做来覆盖整个对象:
window.console={};
或者您可以这样做只是为了覆盖函数:
console.log=function(){/*something*/}
这相当于:
console[“log”]=function(){}
ahh所以我仍然可以使用
console.log()
在这里,将我想要的东西传递到
控制台
中,它的行为仍然相同,我只是在上面添加了一些其他逻辑来处理我想要的东西?事实上,
myCustomConsoleLog
最终所做的就是调用原始的
控制台.log
——但是现在你可以在调用它之前/之后做任何你想做的事情。Cheers人!我甚至没有想到这种方法会更好更简单。谢谢!很高兴帮助!编码愉快。