在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Java  網(wǎng)絡(luò)安全  HTML/ JS實現(xiàn)單例模式

JS實現(xiàn)單例模式

代碼:

var SingletonTester = (function () {

    //參數(shù):傳遞給單例的一個參數(shù)集合
    function Singleton(args) {

        //設(shè)置args變量為接收的參數(shù)或者為空(如果沒有提供的話)
        var args = args || {};
        //設(shè)置name參數(shù)
        this.name = 'SingletonTester';
        //設(shè)置pointX的值
        this.pointX = args.pointX || 6; //從接收的參數(shù)里獲取,或者設(shè)置為默認(rèn)值
        //設(shè)置pointY的值
        this.pointY = args.pointY || 10;

    }

    //實例容器
    var instance;

    var _static = {
        name: 'SingletonTester',

        //獲取實例的方法
        //返回Singleton的實例
        getInstance: function (args) {
            if (instance === undefined) {
                instance = new Singleton(args);
            }
            return instance;
        }
    };
    return _static;
})();

var singletonTest = SingletonTester.getInstance({ pointX: 5 });
console.log(singletonTest.pointX); // 輸出 5 

這里為什么要用匿名自執(zhí)行函數(shù)來賦值SingletonTester?有什么好處?
原文:http://www.cnblogs.com/TomXu/...

回答
編輯回答
瘋浪

為了不污染變量呀。
如果不用立即執(zhí)行函數(shù)的話,var instance 就造成變量名污染了。

2018年6月9日 09:50