没有合适的资源?快使用搜索试试~ 我知道了~
JavaScript使用prototype属性实现继承操作示例
0 下载量 155 浏览量
2020-11-20
17:46:50
上传
评论
收藏 62KB PDF 举报
温馨提示
试读
2页
本文实例讲述了JavaScript使用prototype属性实现继承操作。分享给大家供大家参考,具体如下: JS并没有显式的继承语法,在JS中所有的对象都是Object的子类实现, 因而对象之间是平等关系. 尽管如此我们可以通过特殊的方法达到继承的效果. 当然JS也不能直接定义类, 我们通过定义函数可以得到一个同名的类 , 同时这个函数就是这个类的构造器, 在定义函数时以this修饰的变量就是定义的 类的实例中的属性,当这个属性时函数时, 就可以认为这个属性变成了一个实例方法 //定义一个Person类 function Person(name , age) { this.name=n
资源推荐
资源详情
资源评论
JavaScript使用使用prototype属性实现继承操作示例属性实现继承操作示例
本文实例讲述了JavaScript使用prototype属性实现继承操作。分享给大家供大家参考,具体如下:
JS并没有显式的继承语法没有显式的继承语法,在JS中所有的对象都是Object的子类的子类实现, 因而对象之间是平等平等关系.
尽管如此我们可以通过特殊的方法达到继承的效果继承的效果.
当然JS也不能直接定义类不能直接定义类, 我们通过定义函数定义函数可以得到一个同名的类得到一个同名的类 , 同时这个函数就是这个类的构造器,
在定义函数时以this修饰的变量就是定义的 类的实例中的属性实例中的属性,当这个属性时函数时, 就可以认为这个属性变成了一个实例实例方法
//定义一个Person类
function Person(name , age)
{
this.name=name;
this.age=age;
//定义一个info函数
this.info=function()
{
document.writeln("年龄"+this.age+"姓名"+this.name);
}
}
//创建Person类的实例对象
var p1= new Person('xiaoming',20);
//调用p1的info方法
p1.info();
var p2= new Person('wang',22);
p2.info();
这种在类内(函数内)定义函数的方式是有弊端有弊端的:
性能低下性能低下, 这种方式定义函数在每次创建对象时都会创建一个新的info函数, 有多个对象就会有多个info函数,实际上我们只需要
一个info函数, 这样就会造成系统内存泄漏系统内存泄漏, 引起性能的下降引起性能的下降
使使info函数中的局部变量产生闭包函数中的局部变量产生闭包, 闭包会扩大局部变量的作用域,使局部变量存活到函数外
为了避免这两种情况, 通常不建议在类定义时为类定义方法,而是采用prototype属性:
JS中所有类(函数)都有一个prototype属性, 为该属性增加属性方法可以视为对类的拓展该属性增加属性方法可以视为对类的拓展,
也就是增加了prototype属性的类继承了原有的类继承了原有的类 , 这也就是JS所提供的伪继承机制
//定义一个Person类
function Person(name , age)
{
this.name=name;
this.age=age;
//定义一个info函数
this.info=function()
{
document.writeln("年龄"+this.age+"姓名"+this.name);
}
}
//创建Person类的实例对象
var p1= new Person('xiaoming',20);
//调用p1的info方法
p1.info();
//为Person类增加walk方法
Person.prototype.walk=function()
{
document.writeln(this.name+'正在走<br/>');
}
var p2=new Person('xiaohong',20);
//p2可以调用Person中的方法
p2.info();
//也可以调用prototype属性增加的方法
p2.walk();
//JS允许为类动态增加方法和属性,这里p1也可以调用walk
p1.walk();
上例为prototype属性增加了方法可以认为是为为Person类动态地增加了方法类动态地增加了方法,
资源评论
weixin_38619613
- 粉丝: 6
- 资源: 948
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功