js构造函数、原型链、ajax笔记

js构造函数、原型链、ajax笔记

ID:14618127

大小:28.13 KB

页数:6页

时间:2018-07-29

js构造函数、原型链、ajax笔记_第1页
js构造函数、原型链、ajax笔记_第2页
js构造函数、原型链、ajax笔记_第3页
js构造函数、原型链、ajax笔记_第4页
js构造函数、原型链、ajax笔记_第5页
资源描述:

《js构造函数、原型链、ajax笔记》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、一、This——运行时基于函数的执行环境绑定1、全局函数:window2、函数作为某个对象obj的方法调用:obj3、匿名函数:全局性,通常指向window4、修改this作用域:apply()、call()。第一个参数为目标对象;第二个参数:apply接收参数数组,call接受参数值二、闭包1、定义:有权访问另一个函数作用域中变量的函数2、实现:在一个函数内部创建另一个函数3、变量:只能取得包含函数中任何变量的最后一个值,保存的是整个变量对象(典型:for循环中的闭包总是返回最后一个循环的值,无

2、法返回每次循环的值)4、解决:在闭包内部再创建一个匿名函数functionaa(){varresult;for(vari=0;i<10;i++){result[i]=function(num){//闭包returnfunction(){//闭包中再创建一个函数alert(num);}}(i);}}三、块级作用域(function(){//块级作用域,其中的变量在执行结束后被销毁})();四、创建对象1、简单方式varperson=newObject();person.name=“LL”;perso

3、n.age=22;问题:创建多个相似对象,大量重复代码2、工厂模式functionPerson(name,age){varo=newObject();o.name=name;o.age=age;o.getName=function(){alert(this.name);}returno;}varperson1=newPerson(“LL”,22);person1.getName();//”LL”(1)根据接受的参数来构建一个包含所有必要信息的Person对象,多次调用,每次返回一个包含两个属性和一

4、个方法的对象。(2)优点:解决了创建多个相似对象的问题问题:对象识别的问题,即怎样知道一个对象的类型解决:构造函数1、构造函数模式functionPerson(name,age){this.name=name;this.age=age;this.getName=function(){alert(this.name);};}varperson1=newPerson(“LL”,22);(1)与工厂模式比较a.没有显示的创建对象;b.直接将属性和方法赋值给this对象;c.没有return语句;d.将实

5、例标识为一种特定的类型(instanceof);(2)构造函数与普通函数区别a.习惯:构造函数始终一个大写字母开头,非构造函数以一个小写字母开头b.唯一区别:调用方式不同,用new调用为构造函数,不用new为普通函数(3)Constructor属性:标识对象类型person1.constructor==Person;(4)Instanceof操作符:检测对象类型person1既是Object的实例,也是Person的实例person1instanceofObject==true;person1in

6、stanceofPerson==true;(5)问题:每个方法都要在每个实例上重新创建一遍解决:将方法定义在构造函数外部新问题:方法很多——定义很多全局函数——自定义的类型无封装性解决:原型模式2、原型模式functionPerson(){};Person.prototype.name=”LL”;Person.protptype.age=22;Person.prototype.getName=function(){alert(this.name);}varperson1=newPerson();p

7、erson1.job=“doctor”;alert(person1.name);//“LL”(1)函数的prototype属性:指针,指向一个对象,该对象包含可以由特定类型的所有实例共享的属性和方法。(2)与构造函数区别:不必在构造函数中定义对象实例的信息,将这些信息添加到原型对象中;(3)实例中访问的都是同一组属性和方法(4)原型对象a.函数的prototype(原型)属性:指向函数的原型对象b.constructor(构造函数)属性:包含一个指向prototype属性所在函数的指针Person

8、.prototype.constructor==Person;c.对象实例只可以访问保存在原型中的值,不可通过对象实例重写原型中的值d.为对象实例添加一个属性时,可屏蔽原型对象中的同名属性,delet可以删除新添加的属性,重新访问原型中的属性值(5)hasOwnProperty()——检测一个属性是在原型中还是实例中,实例中返回trueperson1.hasOwnProperty(“name”)==flase;person1.hasOwnProperty(job)==true;(6

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。