我发现自己很少会使用OOP,我的意思是这样的
function Person(name){
return this.name = name;
}
Person.prototype.dateOfBirth = function(){
//some stuff here
}
var John = new Person('John');
console.log(John.dateOfBirth);
也许我没有构建框架或其他什么,但有时候我喜欢使用对象文字对方法进行分组,而不是像
var John = {
name:'John',
dateOfBirth: function(){
// return etc
}
}
John.dateOfBirth();
也许是因为JS是一种客户端语言所以OOP是多余的,你们可以分享一下你使用JS的OOP经验吗?我学习了基本的原型继承和JS的推进对象,但我还没有找到任何用例。
答案 0 :(得分:1)
查看揭示模块模式,您可以在其中控制暴露的内容和不暴露的内容。我认为它提供了OOP希望的公共/隐私控制。
This blog post is a good example
var Person = (function() {
var name = "default";
function dateOfBirth() {
privateBirthCalculation(); //can only be invoked inside of the scope
console.log( 'dateOfBirth' );
}
function privateBirthCalculation() {
console.log( 'my private method' );
}
// explicitly return public methods and properties when this object is instantiated
return {
dateOfBirth : dateOfBirth,
name: name
};
})();