>  기사  >  웹 프론트엔드  >  함수 이름, 함수 매개변수, 객체 속성 이름을 얻기 위한 자바스크립트 코드 예제_기본 지식

함수 이름, 함수 매개변수, 객체 속성 이름을 얻기 위한 자바스크립트 코드 예제_기본 지식

WBOY
WBOY원래의
2016-05-16 16:52:22967검색

1. 함수 이름을 얻기 위한 세 가지 구현 방법

예 1:

JS 권위 가이드에 나온 메소드:

Function.prototype.getName = function(){
return this.name || this.toString().match(/functions*([^(]*)(/)[1]
}

예 2:

현재 함수가 명명된 함수인 경우 해당 이름이 반환됩니다. 익명 함수인 경우 할당된 함수 변수 이름이 클로저에 포함된 경우 "anonymous"가 반환됩니다.

코드 복사 코드는 다음과 같습니다.

var getFnName = function(callee){
var _callee = callee.toString().replace(/[s?]*/g,""),
Comb = _callee.length >= 50 ? 50 :_callee.length;
_callee = _callee.substring (0,comb);
var name = _callee.match(/^function([^(] ?)(/);
if(name && name[1]){
return name[1 ];
}
var caller = callee.caller,
_caller = caller.toString().replace(/[s?]*/g,"");
var last = _caller.indexOf(_callee),
str = _caller.substring(last-30,last);
name = str.match(/var([^=] ?)=/);
if (name && name[1]){
          return name[1]; 함수, 인수 1개 전달 function ee(){
//
var fnname =getFnName(arguments .callee)
//
경고(fnname)
};
ee();


코드 복사


코드는 다음과 같습니다.


function getFuncName(_callee)
{ var _text = _callee.toString();

var _scriptArr = document.scripts; for (var i=0; i<_scriptarr.length i> {

var _start = _scriptArr[i ].text.indexOf(_text);

if (_start != -1)

return _text.match(/^functions*([^(] ). *rn/ )[1];
}
}
}
function a()
{
return getFuncName(arguments.callee);
}
var b = 함수()
{
return getFuncName(arguments.callee);
}
window.alert(a());
window.alert(b());




위의 방법으로 해결할 수 없는 상황이 또 있습니다. 해결하신 분이 조언을 해주셨으면 좋겠습니다.




코드 복사


코드는 다음과 같습니다.


var x = 
{  run: function()

{

return getFuncName(arguments.callee); }

}
window.alert(x.run()); 기능을 얻을 수 없습니다.





코드 복사


코드는 다음과 같습니다.

기능 테스트(){
for(var i=0;i document.write(arguments[i]); }

2. 객체의 모든 속성 이름과 값을 순회하는 방법

코드 복사 코드는 다음과 같습니다.



성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.