1
yimity 2014-07-24 21:05:12 +08:00
定义在 i 里,new 的时候,每个实例都会有,占用内存多,放在原型里,所有实例都只用一个引用。
|
3
coolicer 2014-07-26 17:27:14 +08:00
一种叫特权方法,一种叫公有方法
|
6
rcmerci OP @coolicer 就是,方法x定义在prototype里和定义在构造函数里,a=new XX(),a.x()效果不是一样吗?
|
8
lijsh 2014-07-29 13:14:04 +08:00 1
假设构造函数里定义的方法是fn,这个方法在以new调用构造函数时是直接赋值在实例上的,每调用一次构造函数就生成一次新的fn,也就是说生成1000个实例就会生成1000次这个函数。
另外构造函数里定义的属性和方法是会覆盖prototype上的同名属性(方法)的。 所以楼主问题的答案是: 1:内存占用有区别,构造函数上的方法会重复调用,prototype上的方法会在实例生成时自动继承; 2:优先级有区别,构造函数上的属性(方法)会覆盖prototype上的属性(方法)。 |