[Javascript] 내 이름을 찾아줘
2016. 5. 4. 17:08ㆍCoders
아직, 자세히는 모르지만, Javascript에서는 Java나 C언어의 클래스와 같은 형태로 코드를 작성할 수 있는데요, 특정 스크립트에서, 나 자신이 사용되어지는 화면 단에서 어떤 변수(Variable)명인지 알아야 할 경우가 생겼습니다.
그래서, 여기저기 찾아보고 짜깁기를 해 보았습니다.
//Find My Object Name var findMyObjectName = function (obj) { //Return Value var myName = null; //Global Object Keys var globalObjects = Object.keys(window); //Loop for (var i in globalObjects) { var key = globalObjects[i]; //Skip Objects if (key == 'webkitStorageInfo' || key == 'webkitIndexedDB') continue; //Object Compare if (window[key] === obj) { myName = key; break; } } return myName; };
이것을 어떤 경우에 쓰느냐?
예를 들어, 다음과 같은 클래스(클래스가 맞나요?)와 같은 javascript코드가 있다면,
//생성자 function var myClass = function () { this.myValue = 'Hello'; //아쉽지만, 이 때에는 아직 variable이 생성되지 않아 알 수 없습니다. this.myName = ''; }; myClass.prototype.showMyName = function () { this.myName = findMyObjectName(this); alert('My name is : ' + this.myName); };
myClass를 사용하게 될 경우, 다음과 같지요.
var x = new myClass(); var showMyClassName = function () { x.showMyName(); };
이 경우, alert 창으로 "My name is : x" 라고 단순하게 뜨겠지만, 활용도는 좋을 것으로 생각 됩니다.
또한, 코드에서 "Object.keys(window);" 이 부분을 보시면, html 페이지의 모든 Variable 이름 목록을 얻을 수 있음을 알 수 있습니다.
'Coders' 카테고리의 다른 글
jqGrid Double Click Cell Edit (0) | 2016.05.25 |
---|---|
[Javascript] Bootstrap Modal 위 Modal (1) | 2016.05.04 |
[MSSQL] 중복 데이터 조회, 삭제 (0) | 2016.02.02 |