I want to create a log function where I can insert variable names like this:
var a = '123',
b = 'abc';
log([a, b]);
And the result should look like this in the console.log
a: 123
b: abc
Get the value of the variable is no problems but how do I get the variable names? The function should be generic so I can’t always assume that the scope is window.
so the argument is an array of variables? then no, there is no way to get the original variable name once it is passed that way. in the receiving end, they just look like:
and nothing more
you could provide the function the names of the variables and the scope they are in, like:
however, this runs into the problem if you can give the scope also. there are a lot of issues of what
thisis in certain areas of code:thisiswindowthisisundefinedthisis the constructed objectthisis the immediate enclosing objectso you can’t rely on passing
thisas a scope. unless you can provide the scope, this is another dead end.if you pass them as an object, then you can iterate through the object and its “keys” and not the original variable names. however, this is more damage than cure in this case.