实例化对象和向对象添加方法

[size=medium]最近在学习对象、方法、实例化方法,希望以下的总结可以帮到初学者[/size]。
[size=medium]在面向对象编程中,类(class)是对象(object)的模板,定义了同一组对象(又称"实例")共有的属性和方法。Javascript语言不支持"类",但是可以用构造函数的方法,模拟出"类"。
用构造函数模拟"类",在其内部用this关键字指代实例对象:[/size]

function People() {
    this.name = "ZhangSan";
}

[size=medium]生成实例的时候,使用new关键字:[/size]

var ZhangSan = new People();
alert(ZhangSan.name); //ZhangSan

[size=medium]类的属性和方法,还可以定义在构造函数的prototype对象之上:[/size]

People.prototype.sayHello = function(){
    alert("Hello!");
}


[size=medium]也可以在定义函数的同时定义函数的一些属性:[/size]  
function People(name,sex,age){this.name = name;this.sex = sex;this.age = age}

[size=medium]实例化方法:[/size]
var ZhangSan = new People('ZhangSan','boy',22)
ZhangSan; //People{name:'ZhangSan',sex:'boy',age:22}
ZhangSan.name; //ZhangSan

[size=medium]同样可以使用prototype向对象添加方法:[/size]
People.prototype.sayHello = function(){alert('Hello!')};
ZhangSan.sayHello(); //弹出Hello!
People.sayHello(); //出现错误:TypeError: Object function People(name, sex, age){this.name = name;this.sex = sex; this.age = age;} has no method 'sayHello' 因为sayHello这个方法是向对象添加的方法,只有对象才能调用它

[size=medium]如果需要给people添加方法,执行:[/size]
People.changeKind = function(new_Kind){alert('奥特曼')}
People.changeKind(); //弹出“奥特曼”
ZhangSan.changeKind(); //显示:TypeError: Object #<People> has no method 'changeKind',对象不能调用changeKind方法。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值