测试1
(function () { // 私有变量 var privateVariable = 10; //私有函数 function privateFunction() { return privateVariable; }; // 构造函数 MyObject = function () { }; MyObject.prototype.publicMethod = function () { privateVariable++; console.log(privateFunction()) ; }; })(); // var obj = new MyObject(); obj.publicMethod(); var obj2 = new MyObject(); obj2.publicMethod();11
12
测试2
(function () { // 私有变量 var privateVariable = 10; // 构造函数 MyObject = function () { }; MyObject.prototype.publicMethod = function () { privateVariable++; console.log(privateVariable) ; }; })(); // var obj = new MyObject(); obj.publicMethod(); var obj2 = new MyObject(); obj2.publicMethod();
11
12
测试3
(function () { // 构造函数 MyObject = function () { this.privateVariable = 10; }; MyObject.prototype.publicMethod = function () { this.privateVariable++; console.log(this.privateVariable) ; }; })(); // var obj = new MyObject(); obj.publicMethod(); var obj2 = new MyObject(); obj2.publicMethod();
11 11
总结:
可以用测试3的方式去构建一个独一无二的对象.对象之间属性是独立的。 测试1里面的变量是静态私有变量。