原型对象与继承

JS可以说是一门面向对象的语言,因为它大量的使用对象,而且还有自己以原型对象为基础的继承的机制。JS从其他的面向对象的语言中获得灵感,从而形成了自己的以原型对象为基础的面向对象,而非像C++/JAVA那样以类为基础。

JS有一种有效的方法来声明方法、常量以及其他的属性,即原型对象的方法,因为所有的js对象都继承自原型对象的所有属性。所有说原型对象是存放它们的理想的场所。这样一来的好处是可以大量减少每个对象对于内存的需求,而且原型对象的属性还可以随时的更新,也就是对象被创建出来之后仍可以随时的更新原型对象的属性。由于对象本身还可能自定义了属性,所以JS读写属性的机制是:先检查是否有本身的属性,再去检查是否有原型对象的属性,所以说对象本身的属性会覆盖掉原型对象的属性。很显然,属性的继承只发生在读属性而不会发生在写的时候

一个对象的原型是由创建并且初始化该对象的构造函数定义的。

例如:

function Complex(real, imaginary) {
    this.x = real;
    this.y = imaginary;
}
//定义原型对象的方法,用prototype
Complex.prototype.negative = function() {
    return new Complex(-this.x, -this.y);
}
//定义类方法
Complex.add = function(a, b) {
    return (a.x+b.y);
}
毋庸置疑,能够面向对象进行编程使得JS的功能更加强大。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值