<
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 ...