在《javascript 高级程序设计》第六章6.2.7提到“稳妥构造函数模式”的稳妥对象,指的是没有公共属性,而且其方法也不引用this 的对象,最适合在一些安全的环境中(这些环境中会禁止使用this 和new),或者在防止数据被其他应用程序(如Mashup程序)改动时使用。书中举例如下:
function Person(name, age, job){
//创建要返回的对象
var o = new Object();
//可以在这里定义私有变量和函数
//添加方法
o.sayName = function(){
alert(name);
};
//返回对象
return o;
}
在以这种模式创建的对象中,除了使用sayName()方法之外,没有其他办法访问name 的值。但是如果打开浏览器的断点调试,在执行到Person方法内部时,也可以手动进行修改,这还算安全么?
这就是函数的构造器模式而已。
只是保证了使用 var o = new Person()构造出的对象里面的属性被保护起来。和java的private的限制很相似
但是java即使是private修饰的使用反射也可以进行修改。
这里也一样,没有绝对的安全。都是相对的。
你在这个Person方法内部当然可以进行篡改了。
至少创造出来的对象你是该不了的。