一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第5天,点击查看活动详情。
学完了对象的基础内容,还有this,今天学习new操作符!
学习链接
构造器和操作符 "new" (javascript.info)
简介
对象创建的两种方式
- {...} - 字面量
- new Object() - new来自这里!,注意这里的Object带了个(),这叫构造函数!
构造函数
- 就是常规函数!
- 约定俗成 - 大写字母开头
- 只能由 new 来执行
new的执行过程 - 看看它干了啥!
- 创建一个空的对象 + 分配给this - 先空,有个容器放东西,this指代它!
- 函数体执行,会修改this,并添加新的属性 - 放东西,有的过程
- 返回this的值 - 这里的this,就可以有函数里的属性了! -
- 这个this如果不返回,会隐式返回
new的好处!
- 如果每次都是用字面量 - {....} - 创建对象,就很麻烦。。
- new的主要目的 👇
实现可重用的对象创建代码。
任何函数,除了箭头函数,都可以new! - 一个新的地址空间!
从技术上讲,任何函数(除了箭头函数,它没有自己的
this
)都可以用作构造器。
如何知道是否是用new 创建出来的?
- new.target - 该属性可以检测出来 - 未解。。。
构造函数的return
- 上面说,没有return,自动return - 隐式
- 如果返回的是对象,则返回值是这个对象 - 引用
- 如果返回的是原始类型 - 忽略 - 返回this!
就是这个例子!
构造器中,放入方法!
- 后面学class的时候,也会这样!
this也可以添加到属性中!
- this.name = name(传入!)
- 这样new 啥,返回啥!
总结
每天,记录一点,不紧不慢,按着节奏走!
涓滴之水终可磨损大石,不是由于它的力量强大,而是由于昼夜不舍的滴坠。