Javascript js中创建方法的问题 var mango=新对象(); mango.color=“黄色”; mango.shape=“圆形”; 芒果甜度=8; Object.prototype.howseetami=函数(){ console.log(“嗯嗯好”); } console.log(mango);
问题:Javascript js中创建方法的问题 var mango=新对象(); mango.color=“黄色”; mango.shape=“圆形”; 芒果甜度=8; Object.prototype.howseetami=函数(){ console.log(“嗯嗯好”); } console.log(mango);,javascript,Javascript,问题: 我可以将这一行:Object.prototype.howseetami更改为mango.howseetami,它们都可以工作。但是它们之间有什么区别呢?通常我们使用哪种方法来创建方法?将函数添加到对象原型将使该函数在每个javascript对象上可用。(console.log(window.howseetami))。将其移动到mango将使其成为单个对象的属性。通常您不会向对象.prototype添加任何内容,因为这样它就会添加到所有内容中。例如,它可以用于“”.howseetami()
我可以将这一行:
Object.prototype.howseetami
更改为mango.howseetami
,它们都可以工作。但是它们之间有什么区别呢?通常我们使用哪种方法来创建方法?将函数添加到对象
原型将使该函数在每个javascript对象上可用。(console.log(window.howseetami)
)。将其移动到mango
将使其成为单个对象的属性。通常您不会向对象.prototype添加任何内容,因为这样它就会添加到所有内容中。例如,它可以用于“”.howseetami()
,但这没有多大意义
通常,您有一个特定类型,可以在其中向原型添加方法,例如:
<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>
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);
将该方法添加到原型意味着所有实例都使用相同的方法。如果将方法作为属性添加到实例中,则只有该实例具有该方法,并且不同的实例可以具有该方法的不同实现。例如:
<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>
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);
尝试放置:console.log(this.color)代码>而不是:console.log(“Hmm-Hmm-Good”)代码>并查看差异+1您的代码片段帮助我理解了原型的流程:)谢谢:)