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'"