arguments小结
生活随笔
收集整理的這篇文章主要介紹了
arguments小结
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
函數的屬性有name,caller,length.除此之外讓人耐人尋味的就是創建出來的一個隱藏對象arguments。arguments 它存儲了函數在調用時候實際傳入的參數,它是一個‘像數組一樣的對象’稱之為偽數組,可以將其當作數組來用,因為他的引用和訪問方式與數組一樣(但它不是數組哦)!
console.log(arguments instanceof Array); //false這里來引入一個arguments的使用,鑒于初步了解。
如果用戶傳入的時函數那么就調用,如果是字符串就打印:
function Foo(){for(var i=0; i<arguments.length; i++){ //循環遍歷每一個傳入的實參
if(typeof arguments[i]==='function' ){ //判斷是否是函數
arguments[i]();
}else if(typeof arguments[i]==='string'){
console.log(arguments[i]);
}else{
console.log('您輸入的不是函數也不是字符類型~~~');
}
}
}
Foo(function(){
console.log('函數');
}); //函數
Foo('字符串'); //字符串
Foo(1); //您輸入的不是函數也不是字符類型~~~
以上代碼,調用時候傳入得如果是函數那么則調用執行,如果是字符串那么則打印字符串內容,若非這兩種類型,那么給出提示;
分析完上個案例,這里在引入一個,我認為比較經典的arguments案例。
1,寫一個函數 J, 要求如果函數接收一個參數, 如果該參數是函數, 則將其加載到 onload 上;2,如果傳遞的是 一個字符串. 如果字符串是 # 開頭, 那么獲得頁面中 id 等于該字符串的元素;
3,如果該字符串是以. 開頭, 則獲得頁面中 class 屬性為該字符串的元素(數組)
4,如果僅僅是一個名字字符串, 則返回標簽名字為該字符串的元素 function J(){var a = arguments;if(typeof a[0]==='function'){window.onload = a[0];}else if(typeof a[0]==='string'){var firstChar = a[0].charAt(0);//獲取實參的第一個元素的第一個字節if(firstChar==='#'){return document.getElementById(a[0].substr(1));//返回獲取到的dom節點(substr屬性是截取字符串用法)}else if(firstChar==='.'){//}else{return document.getElementsByTagName(a[0]);}}}//給dom設置樣式的封裝function addStyle(nodes,styles){for(var k in styles){for(var i =0; i<nodes.length;i++){
nodes[i].style[k] = styles[k];}}} J(function () {
addStyle(J("div"),{
width:'500px',
height:'300px',
border:'5px solid red'})
});
在獲取類名有兼容性問題,解決方案,下次補上。
?
轉載于:https://www.cnblogs.com/Snow-G/p/5249049.html
總結
以上是生活随笔為你收集整理的arguments小结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 软件测试第一次作业
- 下一篇: MAVEN POM dependenci