0

プロトタイプを使用して JavaScript 関数のスケルトンを作成しました。

'use strict';  
var functionName = (function () {  
    var functionName = function(param1){  
        console.log("functionName " + param1);  
        this.init(param1);  
    };  

    // public function  
    functionName.prototype = {  
        init : function(param1) {  
            console.log("init " + param1);  
            var privateVar = param1;  
            this.setFunction();  
        },  
        setFunction : function() {  
            console.log("setFunction");  
            // do stuff here  

        }  
    };  

    return functionName;  
}());  

// Instances creation  
var f1 = new functionName("f1");  
var f2 = new functionName("f2");  
f1.setFunction();  
console.log("private var : " + f1.privateVar);  

こちらのコードを参照して ください。どう思いますか? このスクリプトのログは次のとおりです。

functionName f1 (index):25  
init f1 (index):32  
setFunction (index):37  
functionName f2 (index):25  
init f2 (index):32  
setFunction (index):37  
setFunction (index):37  
private var : undefined (index):51  

なんで三回も見たのかわからないsetFunction。誰かがアイデアを持っていますか?
関数のプロトタイプはSetFunction一度実行されるべきではありませんか?

4

1 に答える 1