高階三 函式的引數

2021-08-10 23:59:44 字數 1674 閱讀 3977

<

script

>

//ecmascript函式傳遞的引數可以是0到多個,可以是任意資料型別。沒有函式簽名的概念,所以函式不能過載。

function

doadd

(num1

,num2)

doadd(5);

//只傳入乙個引數,所以arguments[1]設定的值不會反應到命名引數中。

//arguments物件是類陣列,不是array的例項。

script

>

<

script

>

function

doadd2

(num1

,num2)

doadd2(20,

30);

script

>

<

script

>

function

addten

(num)

varcount=20

; varresult

=addten(count);

varnum=30;

varresult2

=addten(num);

//如果未對num進行宣告並且賦值,此處將會報錯。這裡的num與函式裡面的形參num無關。

alert(count);

//20。引數是按值傳遞的,所以傳遞的是20,而不是變數count。

alert(result);

//30

alert(num);

//30

alert(result2);

//40

script

>

<

script

>

function

setname

(obj)

varperson

= new

object();

//person指向的物件在堆記憶體中只有乙個,且是全域性物件。

setname(person);

//obj和person引用的是同乙個物件。

alert(person.name);

//"jame"

script

>

<

script

>

function

setname

(obj)

obj= new

object();

//當在函式內部重寫obj時,這個變數引用的就是乙個區域性物件,這個區域性物件會在函式執行完畢後立即被銷毀。

obj.name

="tom";//

在函式內部修改了引數不會影響到原始的引用person

console

.log(obj);//

} varperson

= new

object();

setname(person);

//(引數是按值傳遞,而不是按引用傳遞)多了這句話反而不好理解。

console

.log(person);//

console

.log(person.name);

//"jame";

script

> //

把ecmascript中的引數想象成區域性變數。

作為引數的函式 匿名函式 高階函式

函式作為乙個變數傳入到了另乙個函式中,那麼該作為引數的函式的型別是 function1,即 引數型別 返回型別 object funparameter 1 map plus 中的 plus 就是將 plus 這個函式當做乙個引數傳給了 map,這裡代表從集合中 遍歷出來的乙個元素。plus 則代表的...

python 高階函式,內建引數

變數可以指向函式,函式的引數能接收變數,那麼乙個函式就可以接收另乙個函式作為引數,這種函式就稱之為高階函式,函式式程式設計就是指這種高度抽象的程式設計正規化。簡例 def add x,y,f return f x f y res add 3,6,abs print res map函式 map 函式接...

Python高階函式 三

排序演算法在各種程式中都有廣泛的應用,排序的核心就是按照某種規則比較所謂的 大小 然後交換位置,如果是數字,我們可以直接比較,但如果是字串或者兩個字典呢?直接比較數學上的大小是沒有意義的,因此,比較的過程必須通過函式抽象出來。python的內建sorted函式就可以對list進行排序。sorted ...