JavaScript语言精粹——继承
2016-03-29 21:32
344 查看
在基于类的语言中,对象是类的实例,并且类可以从另一个类继承。JavaScript是一门基于原型的语言,即对象直接从其他对象继承。
1.伪类
①当一个函数对象被创建时,Function构造器产生的函数对象会运行类似this.prototype={constructor:this};的代码,新函数对象被赋予一个prototype属性,其值是包含一个constructor属性且属性值为该新函数对象。该prototype对象是存放继承特征的地方。
②因为JavaScript语言没有提供一种方法确定哪个函数是打算用来作构造器的,所以每个函数都会得到一个prototype对象。
③定义一个伪类并且替换它的prototype为一个构造函数的实例就可以使他继承该函数。
2.对象说明符
有时构造器要接受一大串参数,要记住参数的顺序十分困难,在编写构造器时令其接受一个简单的对象说明符会更友好。
与其var myObject=maker(f,l,m,c,s);
不如 var myObject=maker({first:f,last:l,state:s,city:c});
这样一来多个参数可以任意排列。
3.原型
①基于原型的继承中,一个新对象可以继承一个旧对象的属性,通过构造一个有用的对象开始,可以接着构造更多和那个对象类似的对象,可以完全避免把一个应用拆解成一系列嵌套抽象类的分类过程。
//一旦有了一个想要的对象,就可以用第三章的Object.beget方法构造出更多实例
var myCat=Object.beget(myMammal1);
myCat.name="loha";
myCat.saying='meow';
myCat.get_name=function(){...}
//定制一个新对象,指明了它与基于的基本对象的区别,是一种差异化继承
1.伪类
①当一个函数对象被创建时,Function构造器产生的函数对象会运行类似this.prototype={constructor:this};的代码,新函数对象被赋予一个prototype属性,其值是包含一个constructor属性且属性值为该新函数对象。该prototype对象是存放继承特征的地方。
②因为JavaScript语言没有提供一种方法确定哪个函数是打算用来作构造器的,所以每个函数都会得到一个prototype对象。
③定义一个伪类并且替换它的prototype为一个构造函数的实例就可以使他继承该函数。
2.对象说明符
有时构造器要接受一大串参数,要记住参数的顺序十分困难,在编写构造器时令其接受一个简单的对象说明符会更友好。
与其var myObject=maker(f,l,m,c,s);
不如 var myObject=maker({first:f,last:l,state:s,city:c});
这样一来多个参数可以任意排列。
3.原型
①基于原型的继承中,一个新对象可以继承一个旧对象的属性,通过构造一个有用的对象开始,可以接着构造更多和那个对象类似的对象,可以完全避免把一个应用拆解成一系列嵌套抽象类的分类过程。
//一旦有了一个想要的对象,就可以用第三章的Object.beget方法构造出更多实例
var myCat=Object.beget(myMammal1);
myCat.name="loha";
myCat.saying='meow';
myCat.get_name=function(){...}
//定制一个新对象,指明了它与基于的基本对象的区别,是一种差异化继承
相关文章推荐
- HTML+servlet+js(使用ajax传参) 出现中文乱码
- javascript 跨域请求
- ExtJs中getCmp、getDom、Get的区别
- JS编写冒泡排序法和二分查找
- javascript 几种常见设计模式
- js 页面值变动监听
- JSP简单练习-EL获取表单数据
- [置顶] JavaScript操作Cookie——高级篇
- JSON 使用
- jsp页面向html页面传参
- JSON 语法
- JS关于数组的操作
- JSON 简介
- js学习
- JavaScript操作Cookie——基础篇
- JS学习笔记(二)
- js技巧 自刷新的几种方法
- JS窗口间通信--localStorage
- Atitit. Js 冒泡事件阻止 事件捕获 事件传递 事件代理
- Atitit. Js 冒泡事件阻止 事件捕获 事件传递 事件代理