面向对象解析prototype(模型)
2015-07-17 16:09
190 查看
在JavaScript中定义一个函数(也称对象)
function Person(name, age){
this.name=name;
this.age=age;
}
var person = new Person("ss" , 12);
现在如果想为对象添加一个setName方法:该怎么办呢??
若使用person.setName = function( name ){
this.name = name ;
}
则只有这个对象可以调用此方法
person.setName( " DD");
alert(person.name); //name的 值为DD
但是如果再创建个对象
var person2 = new Person("AA", 24);
则依旧没有setName这个方法,如果想要所有通过new Person();创建的对象都有setName这个方法的话,则可以使用prototype这个属性,如下:
Person.prototype = {
sex:"男",
setName: function( name) {
this .name = name;
}
}
可以测试一下:
person2.setName("gg");
alert(person2.name); //结果为gg
alert(person2.sex);//男
function Person(name, age){
this.name=name;
this.age=age;
}
var person = new Person("ss" , 12);
现在如果想为对象添加一个setName方法:该怎么办呢??
若使用person.setName = function( name ){
this.name = name ;
}
则只有这个对象可以调用此方法
person.setName( " DD");
alert(person.name); //name的 值为DD
但是如果再创建个对象
var person2 = new Person("AA", 24);
则依旧没有setName这个方法,如果想要所有通过new Person();创建的对象都有setName这个方法的话,则可以使用prototype这个属性,如下:
Person.prototype = {
sex:"男",
setName: function( name) {
this .name = name;
}
}
可以测试一下:
person2.setName("gg");
alert(person2.name); //结果为gg
alert(person2.sex);//男
相关文章推荐
- Linux top命令的用法详细详解
- 问题-Delphi不能进行调试模式
- 在iOS中求数组元素中最大数与最小数
- 收藏网站12
- shell 拾遗
- 基于Spring可扩展Schema提供自定义配置支持(spring配置文件中 配置标签支持)
- 线程池例子
- 用spring容器来接管struts中的action
- 域名服务器无法访问
- 《算法导论》读书笔记--第1、2章课后题
- Sublime Text 全程指引
- 浅谈一下关于android碎片化的问题
- WSS快速安装配置
- 收藏网站11
- Python: classmethod类函数 & staticmethod静态函数 区别
- 0x3f3f3f3f...编程中无穷大常量的设置技巧
- Linux rpm 命令参数使用详解[介绍和应用]
- LR通过SiteScope监控mysql
- 2015 HUAS Provincial Select Contest #1~A
- AsyncTask onPostExecute 未执行问题