【读书笔记】设计模式第一章第二章收获

前言

  • 博主趁双12买了本javascript设计模式,为了使自己加紧看完,一共有40章节,每天2章,20天搞定。
  • 个人觉得这个书还挺有意思。

第一章 灵活的语言 Javascript

  • 第一部分,主要是说别挂太多全局变量,有以下几个解决办法:
  • 一、使用对象把各种方法包起来
  • 二、使用函数返回各种方法(不推荐函数把函数包起来,书上解释是实例化无法获得)
  • 三、使用类的写法(就是函数里面在this里挂方法)
  • 四、由于类需要实例化,作者认为不便,所以把方法直接挂函数原型对象上。
  • tips,解决多次使用调用方法不便的问题,采用return this进行链式调用。
  • 五、由于原型上加方法会污染原型,作者使用原型上挂抽象类的方式:
Function.prototype.addMethod = function(name,fn){
	this[name]=fn
}
var methods = function(){}//或者
var methods = new Function()
methods.addMethod('checkName',function(){})
methods.addMethod('checkEmail',function(){})
methods.checkName()
methods.checkEmail()
  • 六、也可以结合五的例子,把方法挂到其原型对象上。

第二章 写的都是看到的——面向对象编程

  • 主要讲了ES5的类的写法,静态方法,原型链方法,私有属性方法,特权方法(我第一次听这叫法)。
var Book = function(id,name,price){
	var num =1 //私有属性
	function checkID(){} //私有方法
	this.getName= function(){}//特权方法
	this.id = id //对象公有属性
	this.copy=function(){}//对象公有方法
	this.setName(name)//构造器
}
Book.isChinese =true //类静态公有属性
Book.RESETime=function(){}//类静态公有方法
Book.prototype={
	isJSbook:false//公有属性
	display:function(){}//公有方法
}
  • 作者的意思貌似是说特权方法可以访问类的属性,权力比较大,所以叫这名字,当然定义为公有方法,构造器什么的也算是特权方法。
  • 后面一个例子是使用自执行函数把Book做成闭包返回出来。
  • 然后是安全模式,其实就是加一个是否是实例的判断,防止没用new调用把属性挂到全局上。
  • 后面是讲类的继承,先说了原型链继承,单用原型链继承会让父类的特权属性变成每一个实例上共有属性(因为书中用的原型链继承是把子类原型对象指向父类实例,父类实例的生成会调用call使得实例里有父类属性,所有子类实例通过原型链即可找到属性),所以子类还需要使用call(对象冒充),这样就会使得子类调用了一遍父类特权属性方法,在new一个子类实例时候,实际是把特权属性方法直接挂在子类实例上,不需要去拿原型链的了。
  • 另外说了原型式继承,寄生式继承,说是道格拉斯发的文章里写的,实际就是造个Function的原型对象充当子类原型对象,再去链接父类原型对象,这个模式当然包括Object.create做的对象来充当子类原型对象。
function inherit(o){
	function F(){}
	F.prototype=o
	return new F   //调用就是p=inherit(o) p的__proto__就是o  p可以通过原型链找o上东西
}
  • 后面说多继承,其实就是深复制,没啥说头。
  • 然后是多态,同一个方法多种调用方式。简单说就是在函数里判断参数或者条件,然后执行函数里包含的各种函数。

总结

  • 一二两章没说啥东西,总的来说就是复习基础了,收获也不大,毕竟后面38章才是说设计模式精髓。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

业火之理

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值