gpt4 book ai didi

javascript - 向原型(prototype)添加函数 vs 对象字面量(使用 this)

转载 作者:行者123 更新时间:2023-11-29 19:22:32 25 4
gpt4 key购买 nike

<分区>

我知道,如果我将一个函数添加到构造函数原型(prototype),那么它将对使用该构造函数的每个对象可用。而且我知道,如果您将函数添加为(我认为它被称为对象文字?),您将必须将其作为构造函数本身的属性进行访问。 (Difference between adding function to prototype and object literal in javascript)。

但是如果您在构造函数中将新函数声明为“this.xxx()”会怎样呢?这与在原型(prototype)上声明属性有何不同?

我的猜测是,在原型(prototype)上声明函数对象会导致委托(delegate)(并且该函数只会存在一个副本)。与“this”相比,每个构造的对象都会有自己的函数副本。

对吗?

function A () {
}

A.prototype.printNum = function () {
console.log('hi');
}

x = new A ();
x.printNum(); // hi

function B () {
this.printNum = function () {
console.log('hi');
}
}

y = new B ();
y.printNum(); // hi

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com