<script>
var mango = new Object ();
mango.color = "yellow";
mango.shape= "round";
mango.sweetness = 8;
Object.prototype.howSweetAmI = function () {
console.log("Hmm Hmm Good");
}
console.log(mango);
</script>
Run Code Online (Sandbox Code Playgroud)
题:
我可以改变这一行: Object.prototype.howSweetAmIto mango.howSweetAmI,并且它们都可以工作.但它们之间有什么区别?通常我们使用哪种方式来创建方法?
通常你不会添加任何内容Object.prototype,因为它会被添加到所有内容中.它可以用于例如"".howSweetAmI(),并且没有多大意义.
通常,您有一个特定类型,您可以在其中向原型添加方法,例如:
function Fruit(color, shape, sweetness) {
this.color = color;
this.shape = shape;
this.sweetness = sweetness;
}
Fruit.prototype.howSweetAmI = function() {
return this.sweetness;
};
var mango = new Fruit("yellow", "round", 8);
Run Code Online (Sandbox Code Playgroud)
将方法添加到原型意味着所有实例都使用相同的方法.如果将方法作为属性添加到实例,则只有该实例具有该方法,并且不同的实例可以具有该方法的不同实现.例如:
var mango = new Fruit("yellow", "round", 8);
var banana = new Fruit("yellow", "bent", 70);
mango.howSweetAmI = function() { return this.sweetness; };
banana.howSweetAmI = function() { return this.sweetness * 0.1; };
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
62 次 |
| 最近记录: |