您的位置:首页 > Web前端 > JavaScript

读《javaScript 语言精粹》3

2017-03-26 11:01 113 查看
第五章 继承

1伪类 使用构造函数

var Mamal=function(name){
this.name=name;
};
Mamal.prototype.get_name=function(){
return this.name;
}


构建一个实例,

var myMamal=new Mamal("herb the Mammal");
var name=myMamal.get_name();


构建一个伪类继承Mamal,通过定义constructor并替换他的prototype为一个Mammal的实例。

var Cat =function(name){
this.name=name;
};


//替换Cat.prototype为一个实例Mamal

Cat.prototype=new Mamal();


扩充原型函数

Cat.prototype.say=function(){
return "saying hello"||name;
}
//调用函数
var mycat=new  Cat(" henrietta");
var says =mycat.say();
var name =mycat.get_name();


对象说明符

使用参数时,

var myObj=marker(f,l,mc,s);
//写成
var=myObj=maker({
first:f,
last:1,
state: s,
city:c
});


2 原型

继承的第二种形式为,构造一个对象字面量,然后调用beget

var myMamal={
name:"herb the Mammal",
get_name:function(){
return this.name;
};
}


var myCat=Object.beget(myMamal);
//扩张mycat的属性
myCat.name="Henrietta";
myCat.say="hello world";
还可以覆盖父类的方法
myCat.get_name=function(){
return this.saying+","+this.name;
}


作用域

方法调用的实例,将 对象的this作用域,保存后用到函数中。

函数化





var mamal =function(spec){
var that={};
that.get_name=function(){
return spec.spec.name;
}
return that;
};
var myMamal=mamal({ name:‘herb’});


通过调用函数,返回一个对象字面量的实例。

var cat=function(spec){
//为spec扩展属性
spec.say="hello world";
//转成一个新的对象字面量,只能通过方法来访问它的属性。
var that=mamal(spec);
//扩展或者覆盖方法
that.get_name=function(){
return "override the method";
}
return that;
};


使用super的方法。

Object.method('superior',function(name)){
var that=this,
method=that[name];
return function{
return method.apply(that,arguments);
}
};




部件

var event=function(that){
var registry={};
that.fire=function(){
var arry,function,handler,i,type=event.type;
if(registry.hasOwnProperty(type)){
//处理逻辑
}
return this;
}
}


第六章 数组

数组字面量

var empty=[];

var numbers=['one','two','three','four','five'];

第七章 正则表达式

第八章 方法

Arrays, Object ,RegExp,Number,Function,String
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: