JavaScript基本概念B - 關於方法

  • 方法也是對象

這個事須要反覆強調。方法是 類型 Function 的對象,和其餘對象同樣,它也有方法。函數

function gen() {
    return function ans(factor) {
        return 2 * factor;
    };
}

若是看着混亂,能夠使用變量看看spa

function gen() {
    var f = function ans(factor) {
        return 2 * factor;
    };
    return f;
}

或者這樣code

function gen() {
    function ans(factor) {
        return 2 * factor;
    };
    return ans;
}
  • 方法的命名方式

試想你定義下面一個方法對象

function f(factor) {
    return 2 * factor;
}

和下面這個是同樣的blog

var f = function (factor) {
    return 2 * factor;
};

f(2);

  • 方式不支持多態

你不能定義兩個名字同樣的方法,寄但願使用不一樣參數來區分。後面定義的方法會覆蓋前面的方法。io

function ans(f1, f2) { ... }

function ans(f1) { ... } // 這個會替代前面的方法.

須要注意的是全部的參數都不是必須的function

function ans(a, b) {
    //...
}
ans(2); //ans 被調用時 a = 2, and b = undefined
  • 函數返回

在方法定義中你能夠返回任意值或不返回class

function () {
    if (cond1) {
        // 返回一個對象t
        return {
            a: 10
        };
    } else if (cond2) {
        // 返回 undefined
        return;
    } else if (cond3) {
        // 返回一個數字.
        return 1;
    }
}
相關文章
相關標籤/搜索