JavaScript 中的构造函数和新的运算符
Constructor Functions and the new Operator
你好,
我是 Gibson,在这篇博客中,我们将学习构造函数和新的运算符。
我们可以使用构造函数,使用函数来构建对象。现在构造函数实际上是一个完全正常的函数。常规函数和我们称为构造函数的函数之间的唯一区别是我们使用 new 运算符调用构造函数。
现在让我们实际为 a 创建一个构造函数 人 .
在 ○ 对象 ○ 导向的 磷 编程 ( 面向对象 ) 构造函数总是以 a 开头的这种转换 大写字母 .因此,我们也应该始终遵循该约定。
现在我在这里使用函数表达式,当然,函数声明也可以。现在箭头函数实际上不能用作函数构造函数。那是因为它没有自己的“ 这个关键字 ”。所以只有 函数声明 和 函数表达式 .
“使用严格” const Person = function(firstName,birthYear){ }
现在,记住这个 功能 基本上会产生一个 目的, 如果是 人。
现在让我们调用这个函数。常规函数和构造函数之间的唯一区别是我们使用“ 新的 ”关键词。
新人(“吉布森”,2000)
所以我们写 新的, 然后是 Person,然后让我们传入“Gibson”和 2000。
这个 新的 运算符实际上是一个非常特殊的运算符,因为它被称为 this 人物功能。
在幕后,有四个步骤。
- 创建一个新的空对象。
2.函数被调用,在这个函数调用中,“ ** 这个” ** 关键字将被设置为这个新创建的对象。所以 ” 这个 ” 关键字就是这个新的空对象。所以基本上在“ 人 ”函数, “这个” 关键字将指向在第一步中创建的这个新对象。
请记住,所有这一切的发生只是因为我们使用“ 新的 ”这里的操作员。
3. 第三步是将这个新创建的对象链接到一个原型。但更多关于这个在下一个博客。
4. 最后,最后一步是,该函数自动从头开始返回那个空对象。
“使用严格”; const Person = function (firstName,birthYear) { this.firstName = 名字;
this.birthYear =birthYear; };
const gibson = new Person("Gibson", 2000); 控制台日志(吉布森);
output
这是一个名字为 Gibson 和出生年份的 Person 对象,我们将其传递给构造函数。
这里发生了什么,我们正在调用构造函数 新的 关键字或 新的 操作员。因此,立即创建了一个新的空对象。然后调用该函数,然后“ 这个 ”关键字,就是那个空对象。然后在函数中,我们开始为该对象设置属性。
因此,如果我们传入名字,那么我们还应该创建一个名为 firstName 的属性。那么在函数结束时或 这个 关键字现在有两个新属性。然后在第四步中,该对象是在开始时创建的,然后自动从函数返回。所以这一点,就是对象 名 和 出生年 特性。
所以这将是这个函数调用的结果,它将被存储在 吉布森
我们可以使用这个构造函数来创建任意数量的不同对象。
const joseph = new Person("约瑟夫", 2017);
const ben = new Person("Ben", 2015); 控制台日志(约瑟夫,本);
我们可以基于这个构造函数创建尽可能多的对象。
output
现在它们中的每一个都是我们使用函数构造函数以编程方式创建的自己的新对象。
从 JavaScript 开始就使用构造函数来模拟类。因此我们仍然可以说“ 吉布森 “,” 约瑟夫 “, 和” 本” 这是一个实例 人 .
console.log(吉布森 instanceof 人) //真的
然后这将返回真或假。
现在,如果我们在这里创建其他东西
常量水果 = “苹果”
console.log(fruit instanceof Person) //错误的
因为我们 没有使用构造函数创建它 .
我们也可以说“ 名 “ 和 ” 出生年 ” 属性将是实例属性。因为属性“ 名 “ 和 ” 出生年 ”将在通过此构造函数创建的所有实例上可用。
所以这是基本的 构造函数 .所以从这个博客中最重要的理解就是上面 四个步骤 .
结论
在这个博客中,我们学到了很多关于 构造函数 和 新操作员 .希望在我的下一篇博文中见到大家,在那之前保重!保持学习!
感谢您阅读此博客…………
祝你今天过得愉快……
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明
本文链接:https://www.qanswer.top/7834/51130110
标签:函数,对象,创建,JavaScript,运算符,Person,构造函数 From: https://www.cnblogs.com/amboke/p/16645754.html