[javascript] 자바 스크립트에서 문자열로 변수 이름

Javascript에서 변수 이름을 문자열로 얻는 방법이 있습니까? (마음 NSStringFromSelector코코아 )

나는 이렇게하고 싶다 :

var myFirstName = 'John';
alert(variablesName(myFirstName) + ":" + myFirstName);

--> myFirstName:John

최신 정보

JavaScript를 사용하여 브라우저와 다른 프로그램을 연결하려고합니다. 콜백 메소드를 위해 브라우저에서 다른 프로그램으로 인스턴스 이름을 보내고 싶습니다.

FooClass = function(){};
FooClass.someMethod = function(json) {
  // Do something
}

instanceA = new FooClass();
instanceB = new FooClass();
doSomethingInAnotherProcess(instanceB); // result will be substituted by using instanceB.someMethod();

...

다른 프로그램에서 :

evaluateJavascriptInBrowser("(instanceName).someMethod("resultA");");

PHP에서 : PHP
에서 변수 이름을 문자열로 얻는 방법은 무엇입니까?



답변

일반적으로 이름을 특정 값에 매핑하고 두 가지를 모두 검색 할 수있는 상황에 해시 테이블을 사용합니다.

var obj = { myFirstName: 'John' };
obj.foo = 'Another name';
for(key in obj)
    console.log(key + ': ' + obj[key]);


답변

Seth의 답변과 비슷하지만 Object.keys()대신 사용 합니다.

const varToString = varObj => Object.keys(varObj)[0]

const someVar = 42
const displayName = varToString({ someVar })
console.log(displayName)


답변

다음 솔루션을 사용하여 문제점을 해결할 수 있습니다.

const myFirstName = 'John'
Object.keys({myFirstName})[0]

// returns "myFirstName"


답변

ES6에서는 다음과 같이 작성할 수 있습니다.

let myVar = 'something';
let nameObject = {myVar};
let getVarNameFromObject = (nameObject) => {
  for(let varName in nameObject) {
    return varName;
  }
}
let varName = getVarNameFromObject(nameObject);

실제로 가장 잘 보이지는 않지만 작업이 완료됩니다.

이것은 ES6의 객체 파괴를 활용합니다.

자세한 정보는 여기 : https://hacks.mozilla.org/2015/05/es6-in-depth-destructuring/


답변

var x = 2;
for(o in window){
   if(window[o] === x){
      alert(o);
   }
}

하지만 당신은 “karim79″를 좋아해야한다고 생각합니다


답변

이것은 기본 표현에 효과적입니다.

const nameof = exp => exp.toString().match(/[.](\w+)/)[1];

nameof(() => options.displaySize);

단편:

var nameof = function (exp) { return exp.toString().match(/[.](\w+)/)[1]; };
var myFirstName = 'Chuck';
var varname = nameof(function () { return window.myFirstName; });
console.log(varname);


답변

안전을 위해 pop은 [0]으로 인덱싱하는 것보다 낫습니다 (변수는 null 일 수 있음).

const myFirstName = 'John'
const variableName = Object.keys({myFirstName}).pop();
console.log(`Variable ${variableName} with value '${variable}'`);

// returns "Variable myFirstName with value 'John'"