JavaScript原生引用类型

JavsScript中的原生引用类型,例如Object类型,运用了构造函数模式吗?

阅读 3.4k
3 个回答

js是基于原型继承的语言。创作之初参考scheme以函数作为一等公民,参考c语言语法,参考self语言的原型继承,所以它是三者优点的合集;起初叫livescript,当时java很火,公司就给他换了个名字叫JavaScript,其实他和java没半毛钱关系。
原型继承的优点在于可以多重继承,可以模拟类,但类语言是永远无法模拟原型的。这就是JavaScript的灵活之处,可以函数式编程,也可以面向对象编程。

JavaScript中的类和对象本来就争议很大,因为其使用的是原型继承,是通过引用原型链上的方法实现的继承。你调用的对象上的方法,最终都是调用的Object.prototype上面的方法。这些方法即使不使用new来进行定义,使用对象字面量的方式进行定义,也是可以进行调用的。
也就是如果你修改了Object.prototype上的方法,那么所有的对象调用的该方法都会改变。JavaScript里面所有的构造函数其实都是用原型继承的方法fake出来的。即使ES6里面新添加的class,本质上也是使用原型继承的方法实现的。所以还是要去深入了解原型继承到底是怎么实现的。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题