我不认为开发人员喜欢在JS中使用原型,除非应用程序的规模很大。这是因为他们避免过度使用原型功能?
在逻辑下写任何更简单的方法?
function Dog (breed) {
this.breed = breed;
};
Dog.prototype.bark = function() {
console.log("Woof");
};
var buddy = new Dog("golden Retriever");
buddy.bark();
var snoopy = new Dog("Beagle");
snoopy.bark();
答案 0 :(得分:1)
function Dog (breed) {//this stuff is private :)
this.breed = breed;
return { //public api
bark: function(){
console.log("Woof");
}
}
};
这种模式的优点是它提供了隐私。
答案 1 :(得分:1)
方法1
function Dog (breed) {
this.breed = breed;
};
Dog.prototype.bark = function() {
console.log("Woof");
};
<强>优点:强>
Dog
的对象,则对象将更快地创建,因为bark
已经在原型中定义,它也将在新对象中设置。<强>缺点:强>
方法2
function Dog (breed) {
this.breed = breed;
this.bark = function() {
console.log(this.breed);
};
};
<强>缺点:强>
breed
直接添加到对象本身,因此可以通过对象访问它。所以,没有数据保护。方法3
function Dog (breed) {
this.bark = function() {
console.log(breed);
};
};
<强>优点强>
breed
,但无法在对象外部访问。所以,保护数据。<强>缺点:强>