JS问题
我有个问题想请教下:
我现在进行面向对象设计时有个疑惑,我们定义一个类:
function A(){
}
此时我想给A增加属性:
1. function A(){
A.prop = xxx
}
2. A.prototype.prop = xxx
我不知道这两种方式孰优孰劣,在什么情况下使用哪种方式为佳?
然后我想定义一个get的方法,用于返回A中的私有属性
A的私有属性有两种定义方式:
1. function A(){
this._private = xxx => 开发人员协定加“_”的为私有属性,实质上是公共属性
}
2. function A(){
var _private = xxx => 完全私有属性
}
此时定义get方法,针对第一种情况为
A.prototype.getPrivateProp = function(){return this._private;}
针对第二种情况为
function A(){
var _private = xxx => 完全私有属性
this.getPrivateProp = function() {return _private;}
}
那边以上两种处理方式孰优孰劣,什么情况下使用哪种方式合适呢?还有就是我把公共方法定义在A类里和定义在A的prototype上有什么区别吗?