當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
看似无参却有参-----JS中的函数传参
生活随笔
收集整理的這篇文章主要介紹了
看似无参却有参-----JS中的函数传参
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
事件event
JS的事件event是一個非常大的對象,不管是什么事件,事件的詳情都會綁定到全局變量event中。這樣做之所以安全,就是因為JS是單線程的。
<html><body><h1>天下大勢為我所控</h1> </body> <script>function $() {if (arguments.length == 1 && arguments[0].constructor.name === "String") {return document.querySelector(arguments[0]) //這里使用arguments傳遞參數} else {alert("what are you doing ")}}$("h1").onclick = function() {console.log(event)} </script></html>函數參數arguments
function f() {console.log(arguments) } f(1, 2, 3, "one", { name: 'w', age: 1 })復制這段代碼,F12打開瀏覽器控制臺,粘貼運行即可看到結果。
arguments是一個數組的派生類,它比數組多了一個callee屬性。
arguments參數像event參數一樣,也是一個全局變量,每次函數的入棧、彈棧操作都會更新arguments參數,所以arguments參數是存儲在棧里面的。
獲取當前函數名稱
給函數的祖先Function綁定一個getName函數。
Function.prototype.getName=function(){return this.name//如果不嫌麻煩,還可以使用正則表達式從整個函數(包括函數體)中抽取函數名稱// this.toString().match(/function\s*([^(]*)\(/)[1] } function f(){} f.getName()還可以使用arguments中的callee對象來獲取函數名稱。
前端是一門需要積累的技術,不懂后端的算法工程師不是好前端。
總結
以上是生活随笔為你收集整理的看似无参却有参-----JS中的函数传参的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [WP8.1UI控件编程]Windows
- 下一篇: JavaScript中Map的应用及Ma