在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人!我甚至没有想到这种方法会更好更简单。谢谢!很高兴帮助!编码愉快。