簡體   English   中英

在JavaScript中創建對象的多個實例時出錯

[英]Bug while Create multiple instances of an object in JavaScript

我想在JavaScript中創建一個對象的多個實例。 我知道使用Object.create(obj)或使用new ObjConstructor(); using ObjFactory(); (由於@WiktorZychla)將使我創建不同的實例。

我理解與該問題的區別,並且當以某種方式對對象構造函數進行編碼時,它們都可以工作。

但是,當我在對象 構造函數 工廠中使用return來使用閉包實現私有變量時,創建的兩個實例似乎是相同的。

這是我的對象構造函數:

var obj3 = function () {

    variable3 = "Hello World";
    function3_private = function () {

        return variable3;
    };

    return {

        function3_get : function () {

            return variable3;
        },

        function3_set : function (v) {

            variable3 = v;
        },

        function3_print : function () {

            return function3_private();
        }
    };

};  

如何使用此構造函數創建兩個不同的實例? 還是應該在構造函數中進行更改以實現相同的目的?

如果我的代碼未遵循任何建議,請提出最佳做法。 這是小提琴: http : //jsfiddle.net/GcD9n/

您的私有變量實際上是全局變量,因為您錯過了關鍵字var 這意味着您創建的所有對象都使用和修改了variable3function3_private的相同實例,並調用

function3_private();

工作並打印出variable3的值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM