1. 程式人生 > 其它 >方法的定義和呼叫、apply

方法的定義和呼叫、apply

方法

定義方法

方法就是把函式放在物件的裡面,物件只有兩個東西:屬性和方法

var wsh = {
    name: 'wsh',
    birth: 2000,
    //方法
    age: function(){
        //今年 - 出生的年
        var now = new Date().getFullYear();
        return now - this.birth;
    }    
}
//屬性
wsh.name
//方法,一定要帶()
wsh.age()

this.代表什麼?拆開上面的程式碼看看~

function getAge(){
    //今年 - 出生的年
    var now = new Date().getFullYear();
    return now - this.birth;
}

var wsh = {
    name: 'wsh',
    birth: 2000,
    age: getAge
}

//wsh.age() ok
//getAge() NaN window

this是無法指向的,是預設指向呼叫它的那個物件;

apply

在js中可以控制this指向!

function getAge(){
    //今年 - 出生的年
    var now = new Date().getFullYear();
    return now - this.birth;
}

var wsh = {
    name: 'wsh',
    birth: 2000,
    age: getAge
}

//wsh.age()  ok

getAge.apply(wsh, []);  // this,指向了wsh,引數為空