函式的內部屬性argument介紹:
1、該物件是函式的內部的物件,只能在函式體中使用,直接使用即可。
2、arguments是乙個物件,用來代表實參資料。
(1)arguments物件有乙個屬性,length:代表了實參的個數。
(2)arguments物件中的實參資料,每個實參都對應乙個序號,序號從0開始。依次遞增。通過arguments【序號】訪問。
(3)arguments物件能夠實現js中的過載功能。
(4)一般情況下使用形參來接收實參資料,但是如果函式的引數是要求變化的,可使用arguments來代替形參接受實參資料。
(5)arguments物件還有乙個屬性callee.該屬性也是乙個物件,代表當前函式自身,主要作用是用來實現函式呼叫。
// 列印最大值
varmaxnumber
=function()
}return max;
} console.
log(
maxnumber(1
,2,3
,4))
;
函式物件的例項函式介紹:
//自定義兩個物件,將其中的乙個物件的方法借給另外乙個物件使用。
var obj=
}var obj1=
obj.study.
call
(obj1)
; obj.
study()
;
函式遞迴呼叫:
1.概念:函式自身直接或間接地呼叫自己的過程。
使用遞迴解決問題的特點:
(1)問題可以分解為若干個子問題。
(2)子問題的解決方案和問題本身的解決方案一致。
(3)最終問題的解決要依賴於子問題的解決。
(4)最終必須有乙個子問題不能再拆分子問題,必須可以直接解決。
2.遞迴呼叫的優缺點:
優點:**實現相對簡單。
缺點:消耗棧記憶體。效率相對較低。
// 1.用遞迴呼叫求n的階層
function
stratum
(n) console.
log(
stratum(5
));// 2.使用遞迴呼叫求1-n的累加和
function
sum(n)
console.
log(
sum(2)
);//3.使用遞迴呼叫求斐波那契數列中第n個數的值
function
fibo
(n)for
(var i =
1; i <=
20; i++
) console.
log(
fibo(5
));
使用argument.callee屬性實現遞迴呼叫。解決安全隱患。
在**嚴格模式下不允許使用。
如何啟用js**的嚴格模式
1.在全域性啟用,在script中新增「use strict」。
2、在函式內啟用,在函式中新增「use strict」。
通常不建議使用argument.callee
「use strict」
function
fibo
(n)
js 函式的內部屬性
函式內部有2個特殊物件 arguments this 1 arguments 是乙個類陣列物件,包含傳入函式中的所有引數,雖然它的主要用途是儲存函式引數,但這個物件還有乙個名叫 callee 的屬性。這個屬性是乙個指標,指向擁有這個 arguments 物件的函式 這是乙個非常經典的階乘函式。定義階...
JavaScript函式內部屬性
函式內部有兩個特殊物件,this arguments,其中arguments是乙個類陣列物件,包含著傳入函式中的所有引數,主要用來儲存函式引數。arguments物件還有乙個callee屬性,callee是乙個指標,指向擁有這個arguments物件的函式。function fact num els...
js函式實現遞迴自呼叫的方法
1.通過函式自身名字遞迴呼叫 function sum num else console.log sum 5 15 這種通過函式名字呼叫自身的方式存在乙個問題 函式的名字是乙個指向函式物件的指標,如果我們把函式的名字與函式物件本身的指向關係斷開,這種方式執行時將出現錯誤。2.通過arguments....