ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

JavaScript解码中超级混乱的__proto__与原型

2022-11-11 16:00:36  阅读:309  来源: 互联网

标签:JavaScript 状态 服务器 创造 函数 承诺 方法 语法


永远记住这一点。
.protoype 只能用于函数。时期。

假设我们有一个名为myInfo的构造函数

function Info(name,age) {
this.name = name;
this.age = age;
}

我们正在用名为 geo 的构造函数创建一个新对象。

let geo = new Info('Geo',26);

现在,如果我们控制台记录此日志,我们将获得我们的对象地理位置

您可以看到我们可以访问名称和年龄属性。

我们可以使用proto 查看对象地理的原型

现在尝试在控制台中键入geo.prototype

您不会找到名为原型的选项。

现在我只想重申一个事实,即我们只能在函数上使用原型。
由于我们使用的是构造函数,让我们使用它。

如果我们输入我们将得到以下内容Info.prototype

这与geo.__proto__

卡兹不是吗?
我们甚至可以检查它们是否相同

但是,如果我们想向我们的地理对象添加一个函数(技术上是一种方法)怎么办?

我们可以很容易地做到这一点

geo.__proto__.hi = function() {console.log('hi')};

当我们有很多这样的对象时,问题就来了

假设我们有

let john = new Info('John',20);
let sheila = new Info('Sheila',24);
let gary = new Info('Gary',27);
let kate = new Info('Kate',25);

我们必须将 hi 函数附加到我们上面创建的每个新对象。

相反,为什么不只使用构造函数的原型。

只是一个旁注...当我们想到 .prototype 时,我们可能会倾向于认为它显示了原型,是的,它确实如此,但从逻辑上讲,它实际上就像function.customPrototypeIAmMaking

因此,让我们为信息创建一个sayHello函数

Info.prototype.sayHello = function () {console.log(`Hello I am ${this.name}`)};

无论您使用构造函数 info 创建哪个对象,您始终可以访问 sayHello。

标签:JavaScript,状态,服务器,创造,函数,承诺,方法,语法
来源:

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有