空javascript函数的框架
我使用prototype创建了javascript函数的框架:空javascript函数的框架,javascript,function,prototype,Javascript,Function,Prototype,我使用prototype创建了javascript函数的框架: 'use strict'; var functionName = (function () { var functionName = function(param1){ console.log("functionName " + param1); this.init(param1); }; // public function functi
'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
的原型不应执行一次 您正在调用this.setFunction()代码>在初始init
中。无论何时调用构造函数,都会遇到此问题
因此,它会同时受到两次攻击:
var f1 = new functionName("f1");
var f2 = new functionName("f2");
然后您将分别再次调用它,以获得第三次:
f1.setFunction();
您正在调用this.setFunction()代码>在初始init
中。无论何时调用构造函数,都会遇到此问题
因此,它会同时受到两次攻击:
var f1 = new functionName("f1");
var f2 = new functionName("f2");
然后您将分别再次调用它,以获得第三次:
f1.setFunction();
您正在调用this.setFunction()代码>在初始init
中。无论何时调用构造函数,都会遇到此问题
因此,它会同时受到两次攻击:
var f1 = new functionName("f1");
var f2 = new functionName("f2");
然后您将分别再次调用它,以获得第三次:
f1.setFunction();
您正在调用this.setFunction()代码>在初始init
中。无论何时调用构造函数,都会遇到此问题
因此,它会同时受到两次攻击:
var f1 = new functionName("f1");
var f2 = new functionName("f2");
然后您将分别再次调用它,以获得第三次:
f1.setFunction();