1)第一页是有的克莱德路宝的答案:
var f = new foo();
f.bar();
2)在consturctor
(特权)上编写函数,每个实例将创建一个新的函数,如果在prototype
上定义了方法,则每个实例都共享相同的prototype
的方法:
var f1 = new foo(), // instance 1
f2 = new foo(); // instance 2
f1.privileged === f2. privileged // -> false , every instance has different function
f1.bar === f2.bar // -> true, every instance share the some function
3)你可以调用bar2
在bar' by
this.bar()',这样的代码:
function foo() {
this.property = "I'm a property";
this.privileged = function() {
// do stuff
};
}
foo.prototype.bar = function() { // defined a method bar
alert('bar called');
this.bar2(); // call bar2
};
foo.prototype.bar2 = function() { // defined a method bar2
alert('bar2 called');
};
var f = new foo();
f.bar(); // alert 'bar called' and 'bar2 called'
f.bar2(); // alert 'bar2 called'
的的jsfiddle是优秀的!我读了你的答案,并认为“是的,有道理”。开始思考“但是如果......”和jsFiddle让我全面测试。优秀。 – JonWells