我希望函数在一个对象上可用,但如果我将它调试或将其发送到另一个函数,我不会看到它。
var obj = function() {
this.name = 'Bob';
this.age = 23;
}
obj.prototype.say = function() {
console.log(this.name, this.age, 'thats me..');
}
var pers = new obj();
console.log(pers); // { name: 'Bob', age: 23 }
pers.say(); // Bob 23 thats me..
这对解决方案和良好做法有益吗?或者这是在javascript中实现此目的的更好方法吗?
答案 0 :(得分:0)
当您记录对象时,使用原型创建的函数也是可见的。在此上下文中,您唯一可以做的就是使用this
在构造函数中创建函数并创建closure
。与原型函数不同,这些函数不是对象实例中的共享函数。我的意思是,函数的更改不会反映在所有对象实例中。
var obj = function() {
this.name = 'Bob';
this.age = 23;
function privateTest(){ alert("hai"); }
this.test = privateTest;
}