js函式 內部屬性 方法 遞迴呼叫

2021-10-13 06:00:53 字數 1769 閱讀 1617

函式的內部屬性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....