[size=medium]最近在学习对象、方法、实例化方法,希望以下的总结可以帮到初学者[/size]。
[size=medium]在面向对象编程中,类(class)是对象(object)的模板,定义了同一组对象(又称"实例")共有的属性和方法。Javascript语言不支持"类",但是可以用构造函数的方法,模拟出"类"。
用构造函数模拟"类",在其内部用this关键字指代实例对象:[/size]
[size=medium]生成实例的时候,使用new关键字:[/size]
[size=medium]类的属性和方法,还可以定义在构造函数的prototype对象之上:[/size]
[size=medium]也可以在定义函数的同时定义函数的一些属性:[/size]
[size=medium]实例化方法:[/size]
[size=medium]同样可以使用prototype向对象添加方法:[/size]
[size=medium]如果需要给people添加方法,执行:[/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方法。