首页 > 代码库 > JavaScript学习笔记——8.面向对象
JavaScript学习笔记——8.面向对象
1.封装——初始化方式
var Cat = {
name:‘jack‘,
age:5,
say:function(){
alert(‘hello world!‘);
}
}
或:
var Cat = {}
Cat.name = ‘jack‘;
Cat.age = 5;
Cat.say = function(){
alert(‘hello world!‘);
}
alert(Cat.name);
Cat.say();
2.封装——Object方式
function Cat(name,age){
var c = new Object();
c.name = name;
c.age = age;
return c;
}
var cat1 = Cat(‘jack‘,5);
alert(cat1.name);
3.封装——构造函数方式
function Cat(name,age){
this.name = name;
this.age = age;
}
Cat.prototype.say = function(){ //利用prototype可将多个实例中相同的属性/方法指向同一内存地址
alert(‘hello world!‘);
}
var cat1 = new Cat(‘jack‘,5);
alert(cat1.name);
cat1.say();
4.遍历
for(var c in cat1){
alert(c); //弹出对象的所有属性
alert(cat1[c]); //弹出对象所有属性的值
}
5.继承——Apply方式
function Animal(){
this.species = ‘动物‘;
}
function Cat(name){
Animal.apply(this , arguments);
this.name = name;
}
var cat1 = new Cat(‘jack‘);
alert(cat1.species);
6.继承——prototype方式
function Animal(){
this.species = ‘动物‘;
}
function Cat(name){
this.name = name;
}
Cat.prototype = new Animal(); //将Cat的原型指向Animal
Cat.prototype.constructor = Cat; //将Cat的实例更正为继承Cat
var cat1 = new Cat(‘jack‘);
alert(cat1.species);
7.多态
在一个类中定义抽象方法(只设置方法格式,不做任何具体实现)
具有抽象方法的类成为抽象类,该类不派生任何实例,只用于被子类继承
在子类继承后,根据自己的需求,再对原父类的抽象方法进行具体的实现
这个过程称之为“多态”
作者:@zhnoah
出处:http://www.cnblogs.com/zhnoah/
本文版权归本人和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连
接,否则保留追究法律责任的权利。
JavaScript学习笔记——8.面向对象