1 function MyObject(){ 2 // private variables and functions 3 var privateVariable = 10; 4 5 function privateFunction(){ 6 return false; 7 } 8 9 // privileged methods 10 this.publicMethod = function(){ 11 privateVariable++; 12 return privateFunction(); 13 }; 14 } 15 16 var temp = new MyObject(); 17 18 var test = Object.getOwnPropertyNames(temp); 19 20 for(var i=0; i<test.length; i++) 21 console.log(test[i]); // publicMethod
输出只有publicMethod,这说明构造函数中的privateVariable和privateFunction()都是私有的,通过构造函数产生的对象中只有publicMethod属性。 这两者的区别是什么? 区别就是在构造函数中,publicMethod前面有一个this。