Get variable names with JavaScript

前端 未结 7 903
傲寒
傲寒 2021-02-08 18:47

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 sho

相关标签:
7条回答
  • 2021-02-08 19:35

    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:

    ["123","abc"];
    

    and nothing more


    you could provide the function the names of the variables and the scope they are in, like:

    function log(arr,scope){
        for(var i=0;i<arr.length;i++){
            console.log(arr[i]+':'scope[arr[i]]);
        }
    }
    

    however, this runs into the problem if you can give the scope also. there are a lot of issues of what this is in certain areas of code:

    • for nonstrict functions, this is window
    • for strict functions, this is undefined
    • for constructor functions, this is the constructed object
    • within an object literal, this is the immediate enclosing object

    so you can't rely on passing this as 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.

    0 讨论(0)
提交回复
热议问题