我试图弄清楚在创建构造函数后如何向构造函数添加方法。
在下面的代码中,我不能使用 Person 的原型属性来添加一个可以访问 Person 变量的新公共方法。(是否附加到原型属性的函数不关闭主函数中的变量)。
与第一种方式不同,第二种方式有效 - Person 2. 似乎这些被称为特权方法 - http://www.crockford.com/javascript/private.html。
function Person(name, age){}
Person.prototype.details = function(){
return "name: "+name+", age: "+age;
};
function Person2(name, age){
this.details = function(){
return "name: "+name+", age: "+age;};
}
var per1 = new Person("jim", 22);
var per2 = new Person2("jack", 28);
per1.details();
//=> ReferenceError: age is not defined
per2.details();
//=> "name: jack, age: 28"