日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

arguments小结

發布時間:2025/3/19 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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小结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。