使用 prototype 定义方法和属性
除了可以在类的构造器方法中定义方法和属性外,也可以使用 prototype 定义方法和属性。每个类都有这个属性,该属性是一个静态属性,因此无需实例化,只需使用类引用该属性即可。
1.1 使用 prototype 定义方法:
function Person(myName,myAge){
this.nickName = myName;
this.age = myAge;
}
Person.prototype.showInfo = function(){
return("hi"+this.nickName+"我现在"+this.age+"岁了。");
};
1.2 使用 prototype 定义属性:
function showHistory(){
return "10年开发体验";
}
Person. prototype.showHistory = showHistory;
var person_1 = new Person("xiaowu","28");
alert(person_1.showHistory()) //弹出10年开发体验
1.3 关于 prototype 和 _proto_ 属性
每个构造器都有一个 prototype 属性,该属性在定义构造器方法时自动创建的。 prototype 属性代表用该函数创建的类的默认属性值。
如果将方法分配给类的 prototype 属性,则该类的任何新创的实例都可以使用这些方法。
类的每个新实例也都有一个 _proto_ 属性,用于引用创建它的构造器方法的 prototype 属性。
可以使用 prototype 和 _proto_ 属性扩展类,这样可以以面向对象的方式重新使用代码。
person_1._proto_.showHistory = showHistory;
tip:最好将方法分配给构造器方法的 prototype 属性,因为它只存在于一个位置,并且由该类的新实例引用。_proto_ 属性最终还是要经过对 prototype 属性的引用才能实现其功能。
并且,IE不支持 _proto_ 属性。所以不建议使用。
最新文章
- Spring in Action 学习笔记二-DI
- position:fixed失效
- CabArc to create or extract a cab file
- 密码学初级教程(八)SSL/TLS-为了更安全的通信
- 无良教程-破解SublimeText3
- JqGrid使用经验
- 分析java堆
- Android -- AsyncTask源码解析
- 浅析php过滤html字符串,防止SQL注入的方法
- python3全栈开发-什么是粘包、粘包现象、如何解决粘包
- Android初级教程XUtils实现“断点续传”下载
- (十三)UITableView数据模型化
- golang中Context的使用场景
- Springboot 系列(十一)使用 Mybatis(自动生成插件) 访问数据库
- System.IO.Pipelines: .NET上高性能IO
- SpringBoot 集成数据库连接池Druid
- HttpConnection
- npmrc npm配置文件
- indexOf() 使用方法(数组去重)
- css 横向滚动条webkit-scrollbar
热门文章
- CodeForces - 862C Mahmoud and Ehab and the xor(构造)
- yii2.0 引入权限控制插件
- 《新标准C++程序设计》4.6(C++学习笔记16)
- JS - if(flag) if(!flag)
- Percona-Toolkit 之 pt-archiver 删除历史数据
- 74.Python中ORM聚合函数详解:Max,Min
- 032-session函数
- 通过html5 touch事件封装手势识别组件
- webapi------宿主程序
- C#编码习惯2