DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> JavaScript基礎知識 >> 私有成員 ECMAScript6 weakmap
私有成員 ECMAScript6 weakmap
編輯:JavaScript基礎知識     
把變量放到構造函數裡進行私有化,每一個實例都會有一個getName方法,這是低效率的。
function Person(name) { this.getName = function() { return name; }; }

改進,把私有成員數據存到實例上去(把實例保存起來,分配唯一的id),但是問題在於即使實例被垃圾回收那些數據永遠保存著。
var Person = (function() {

    var privateData = {},
        privateId = 0;

    function Person(name) {
        Object.defineProperty(this, "_id", { value: privateId++ });

        privateData[this._id] = {
            name: name
        };
    }

    Person.prototype.getName = function() {
        return privateData[this._id].name;
    };

    return Person;
}());


使用weakmap:
var Person = (function() {      var privateData = new WeakMap();      function Person(name) {           privateData.set(this, { name: name });      }      Person.prototype.getName = function() {           return privateData.get(this).name;       };      return Person; }());
XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved