摩登567主管-641480-js函式初識

xiemuran發表於2021-10-30

1.關於函式

函式屬於物件,卻是物件裡的一等公民,有著至高無上的地位。跟普通物件一樣,定義屬性和方法,擁有原型物件prototype。還可以進行呼叫並執行自身的程式碼塊。

1
2
3
4
5
6
7
8
9
10
11
12
13
function  fn(){}
 
fn.attr =  'value' ;
fn.method =  function (){
     console.log( this .name);
}
 
fn.prototype = {
     name:  'calvin' ,
     getName:  function (){
         console.log( this .name);
     }
}

 2.函式的作用域

當在最外層進行定義變數時,該變數屬於全域性物件window。全域性變數在任何位置都可進行訪問。而在函式裡面進行定義,變數的作用域只屬於函式內部,在函式外部無法進行訪問。

var a = 3;function fn(){    var a = 23;    var b = 34;
}
console.log(a); //3console.log(b); //b is not define

3.函式的引數

函式呼叫時傳入函式內部的引數,盡在函式內部的作用域內生效(屬於區域性變數);函式呼叫時可通過訪問arguments得到實參(實際引數)的集合;當實引數量少於形參時,形參後面的引數預設undefined;當實參多餘形參個數時,多出的引數無效。

function sum(a,b,c){
    console.log(arguments);//實參類陣列,具有length屬性
    return a + b + c;
}
sum(1,2,3,4);//6sum(1,2);//NAN 數字加undefined為NAN

4.函式的this

this在函式內部指向該函式所屬的物件。在全域性作用域定義的變數,this指向window。

var a = 3;function fn(){
    console.log(this.a);
}
fn();//3 此時this指向windowfn.a = 5;
fn.getName = function(){
    console.log(this.a);
}
fn.getName();//5 此時this指向getName所屬物件 fn


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69997780/viewspace-2839865/,如需轉載,請註明出處,否則將追究法律責任。

相關文章