1.2.8.3.我們的物件與其原型

  • IIFE時, 裡面的變數與全域是各自獨立的

(function (global, $) {
    //不需要每次都使用new
    var Greetr = function (firstname, lastname, language) {
        return new Greetr.init(firstname, lastname, language)
    }

    Greetr.prototype = {};

    //用new建構子呼叫時, this會指向新建立的空物件
    Greetr.init = function (firstname, lastname, language) {
        var self = this;
        self.firstname = firstname || '';
        self.lartname = lastname || '';
        self.language = language || 'en';
    }

    //由Greetr.init所建立的物件應該指向Greetr.prototype作為原型鍊
    Greetr.init.prototype = Greetr.prototype;

    //IIFE外面的Greetr(別名G$)會指向Greetr
    global.Greetr = global.G$ = Greetr;

}(window, jQuery));

Last updated