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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Javascript 中的 Function对象

發布時間:2025/5/22 java 15 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Javascript 中的 Function对象 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在 js 中 函數 Function(大寫) 就是一個對象。在 javascript 中沒有函數 reload (重載)的概念。

我們看下面這個,結果應該是什么呢?

<html><head><script type="text/javascript">function add(number){alert(number+20);}function add(number){alert(number+30);}add(10);</script></head><body></body> </html>

結果是 40. 也就是第二個 add()方法的結果。我們再改成

<html><head><script type="text/javascript">function add(number){alert(number+20);}function add(number, number1){alert(number+30);}add(10);</script></head><body></body> </html>

結果還是40.雖然第二個 add()中有2個參數。

我們把兩個 add()方法調換位置。

<html><head><script type="text/javascript">function add(number, number1){alert(number+30);}function add(number){alert(number+20);}add(10);</script></head><body></body> </html>

結果變成了 30。

難道 js 是查看哪個方法在后面么?不是。

其實對于第一個 add(number){alert(number+20;} 方法,它等于

var add = function (number) //f 是小寫 { alert(number + 20); }

也就是說 function (number){alert(number+20);} 是一個對象。而 add 是指向 function 對象的引用。

所以第二個變成了

var add = function (number, number1) { alert(number + 30); }

這時候 add 已經指向了這個 function 對象,而不再指向原來的 (number+20)對象。又由于 js 中可以定義2個參數卻僅僅傳遞1個參數,所以 add指向的新的 function對象仍然可以繼續執行。

我們再看下面這個。結果是什么呢?

<html><head><script type="text/javascript">function add(number){alert(number+20);}function add(number, number1){alert(number1);}add(10);//注意:這里只傳遞了 number 沒有傳遞 number1</script></head><body></body> </html>

結果是: undefined

javascript 中有一種數據類型叫 Undefined。它只有一個值 undefined.

就像java中有數據類型 boolean,它有兩個值 true或者 false一樣。

在 javascript 中有個 Function(大寫)? 對象,所有自定義的函數都是 Function (大寫)對象類型的。

既然如此,我們也可以用 Function 對象來直接定義函數:

<!DOCTYPE html> <html><head><script type="text/javascript">var add = new Function("number", "alert(number+20)");add(10);</script></head><body></body> </html>

注意, Function 這個對象中所有的參數都是字符串的形式的(即使我們用 add(10)傳進來一個數字),而且他的最后一個參數(這里指 "alert(number+20)")是要執行的函數體。

再看一個實例

<html><head><script type="text/javascript">var add2 = new Function("number", "number1", "alert(number+number1);");add2(10,20);</script></head><body></body> </html>

結果:30

在 js中每個函數都有一個隱含的對象 arguments,表示給函數實際傳遞的參數。

我們看這個

?

<html><head><script type="text/javascript">function add(num1, num2){alert(arguments[0]);alert(arguments[1]);}add(2,3);</script></head><body></body> </html>

?

結果會依次打印出 2 , 3

我們再看一個

<html><head><script type="text/javascript">function add(num1, num2){alert(arguments[0]);alert(arguments[1]);alert(arguments[2]);}add(2,3,4);</script></head><body></body> </html>

上面的例子add只定義了兩個參數,但是調用的時候傳進來3個參數,可以么?結果如何?

可以的。結果是一次打印出 2, 3, 4。

這就是說 arguments 這個固有對象是不受自定義方法的影響的。

arguments 還有一個屬性 length,表示有幾個參數,比如:

?

<html><head><script type="text/javascript">function add(num1, num2){alert(arguments.length);}add(2,3,4);</script></head><body></body> </html>

?

結果是: 3

表示3 個參數。

js 是不支持方法重載的,但是我們可以使用 arguments模擬出來方法的重載的。

?

<html><head><script type="text/javascript">function add2(){if (1== arguments.length){alert (arguments[0]);}else if(2== arguments.length){alert (arguments[0]+arguments[1]);}else if(3== arguments.length){alert (arguments[0]+arguments[1]+arguments[2]);}} add2(1);add2(1,1);add2(1,1,1);</script></head><body></body> </html>

?

結果,分別打印出 1, 2, 3

其實,由于 javascript 中對傳入參數數量沒有嚴格限定, 在很多框架中都應用了 arguments來限定用戶輸入的參數個數。

轉載于:https://www.cnblogs.com/backpacker/archive/2012/08/01/2617642.html

總結

以上是生活随笔為你收集整理的Javascript 中的 Function对象的全部內容,希望文章能夠幫你解決所遇到的問題。

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