为了账号安全,请及时绑定邮箱和手机立即绑定

理解 JavaScript: new 关键字

标签:
JavaScript

由于存在海量的库和工具,以及各种各样简化你开发的玩意儿,很多程序员开始在不深入了解底层的情况下开发应用。JavaScript就是这种现象的代言人。JavaScript作为一种最复杂的且流传最广泛的语言,很多的开发者被高层次库的使用吸引,同时将糟粕抽离。

尽管你在不深入了解的情况下仍可以开发值得称道的应用,但深入JavaScript绝对让你收益。对“怪异部分”的理解可以让高级开发者在芸芸众生中脱颖而出,另外,虽然JS的生态日新月异,但对“怪异部分”的理解依旧是所有其他工具的基础。理解了这些就会拓展你的视野,并且改变你看待开发过程的方式。

在我 之前的文章 中稍微提到过new关键字,它创建了一个对this的绑定。在面向对象语言中,new关键字总是用于实例化一个类。

var dog = new Dog();

原理是类的构造函数被调用,并且实例化了新的对象。尽管JavaScript的语法非常相同,但使用new在底层还是会引发不同行为

没有构造函数

首先,我们并不是必须要用一个类来生成对象。在JavaScript中我们可以用函数就能实现此目标。构造函数只不过是在调用时new关键字放在其前面的普通函数而已。你可以说没有构造函数-只有构造函数调用,因为实际上所有的函数都可以被调用去创建对象。这并不是对象或者类或者任何特殊定义方式的一部分。

这里有几个构造函数调用经历的步骤,但我们只关注现在讨论的事项:

1.一个新对象被创建 2.this被绑定到新对象上面 3.除非函数返回它自己的对象,否则调用将返回已构造的对象

function Person(name) {    this.name = name
}var person = new Person("Alex")console.log(person.name) // Alex

总结

总结一下,这并不是一个难懂的概念。要点就是要始终记得,任何函数都可以像构造函数一样被调用,并且会创建一个this的绑定。

非常感谢阅读,期待你的反馈。

译文出处

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消