首頁 > web前端 > js教程 > javascript取得函數名稱、函數參數、物件屬性名稱的程式碼實例_基礎知識

javascript取得函數名稱、函數參數、物件屬性名稱的程式碼實例_基礎知識

WBOY
發布: 2016-05-16 16:52:22
原創
994 人瀏覽過

一、取得函數名稱的3種實作方法

實例1:

在js權威指南中看到的一個方法:

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

實例2:

如果目前函數是有名函數,則傳回其名字,如果是匿名函數則傳回被賦值的函數變數名,如果是閉包中匿名函數則傳回「anonymous」。

複製碼 代碼如下:

  _callee = callee.toString().replace(/[s?]*/g,""),
      comb = _callee.length >= 50 ? 50 :_callee.length; 0,comb);
      var name = _callee.match(/^function([^(] ?)(/);
     ;
      }
      var caller = callee.caller,
      _caller = caller.toString().replace(/[s?]*/iooo); (_callee),
      str = _caller.substring(last-30,last);
      name = str.match(/var([^= )=/);
;        return name[1];
      }
      return "anonymous"
       return "anonymous"
       return "anonymous"
  ,傳入一個參數,為arguments.callee。 ee(){
      //
      var fnname =getFnName(arguments.callee)
      // ();


實例3:
複製程式碼


程式碼如下:


function getFuncName(_cala) var _scriptArr = document.scripts;
 for (var i=0; i<_scriptarr.length i> { ].text.indexOf(_text);

  if (_start != -1)  {   if (/^functions*(.*).*rn/.test(_text))

{

    var _tempArr = _scriptArr[i].text.substr(0, _start).split('rn');

    return _tempArr[_tempArr.length - 1var].replace(/ return _tempArr[_tempArr.length - 1var].replace(/ return) | *)/g, '').replace(/=/g, '');   }   else    return _text.match(/^functions*([^(] ).rn/^(] ).rn/ )[1];  } }}
function a()
{
 return getFuncName(arguments.callee);
}
^ b ()
{
 return getFuncName(arguments.callee);
}
window.alert(a());
window.alert(b());




以上的方法還有一個情況沒辦法解決,希望有辦法的能給出指點。




複製碼


代碼如下:


var x =  :


var x =  :

    { 

        return getFuncName(arguments.callee); 

    } 這個情況下無法得到函數的名稱;


二、js取得函數的所有參數和遍歷某個物件所有的屬性名稱和值的方法


複製程式碼


程式碼如下:



程式碼如下:
function test(){

for(var i=0;i document.write(arguments[i]);

}

2.遍歷某個物件所有的屬性名稱和值的方法

複製程式碼

程式碼如下:



var obj = new Object();

obj.myname = "我是物件";
obj.pro2 = "23";
obj.pro3 = "abcdeg"; php程式設計師站

for (items in obj){
 document.write("屬性:" items "的值是(" obj[items] ")");

 document.write("
") ;
}
相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板