




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
复 实 教学目 语言的发展历程1节 构造函数进 构造函数和普通的区 使用构造函数创建属性的四种方 属性的进 万物皆属 万物皆变 Getset取值器设置 权 属性进阶2:公有属性和私有属 对象实例进 一切数据都是在内存中管理 实例是如何在内存中 指针的概 对象是如何在内存 实例拷贝原 Function对 为什么实例含有constructor属 原型进 原型的属性(方法)共享理 面试题理解属性共享理 那么问题来了???既然不考虑,我怎么找到这个属(方法)呢 双对象法 属性是Function对象的一个属性而 属性搜索机制的本 属性理 上午内容复 对象实例进阶 原型进 面向对象的各种术语总结10分 面向对象的三个作用进阶1节 面向对象的三个作用-封装性进阶1节 面向对象的三个作用-数据绑定2节 复 1.13.1星座案 面向对象基 面向对象对象进 复单个实例:产品详细信息通过工具把三个概念连在一起--联系函数:工具----封装细节--不需要了解内部需要会用对象:工具包--包含多个函数(工具)框架:浏览器兼容装一些常用的代码--多个对象而已(多个工具包Jquery:选择$(#id)$(.class)dom框架内容:htmlCss:csshightwidthhasclassJqueryUI:tab幻灯片ES5ES6trim原型和字面 Json协议html协议实思考时间整理思路解需求写代码:30%思考30%测试交教学目构造函数进构造函数其实就是普通函万物皆属万物皆变量--函数和函数表达式变量都是存在内存中的--了解内存-属性的getset属性的读写权私有属性和公有属原型进语言的发展历1节人的发展历程:0单细胞001010011多细胞 组织:心脏肺gan函数人:对象比如汉字数据到内存里CPU解目标:通过语言的发展历程体会为什么会有面向对象语言,以及好高级语言的面向对象写法简单了构造函数进构造函数和普通的区一回当时js语言不支持面向对象。Js语言和其他语言不同的地方之一:js的对象就是用函数实现的使用构造函数创建属性的四种方instanceof属性的进万物皆属方法从某种角度来说:一切都可以看作一个属万物皆变所有的数据都是通过变量来保存(管理)变量都是在内存中varstr=varfn=varproduct=function(){}functionProduct(){}var函数和函数表达式的区函数是可以提升的,而函数表达式不可以提升当我们定义一个函数表达式,在这个表达式前面是不到的////函,变量fn以及其实现被提升到顶functionconsole.log('函数}//函数表达式,仅变量fn2被提升到顶部,实现没有被提varfn2=console.log('函数变量形式}Getset取值置Getset用于对一个属性进行包装,比如Object.defineProperty(this,Object.defineProperty(this,"price",{get:function(){returnprice*0.9;},set:function(value){/*大概普通产品的价格都在0--1万{alert('产品价格必须在0--1万之间price=}}权设置某个属性是否可/*/*我们的需求:自动计算打折后的价格Object.defineProperty(this,"price",,writable:属性进阶2:公有属性和私有属//对象构造函//私有属性好处全类似闭包中的函数一样少污functionvarclassName="用户对象";=name;//私有方varprivateFunctionfunction(){alert();//公有属alert(className);正确接通过变量alert(this.className//undefined能这}//公有方this.publicFunction=function(){alert();//公有属性alert(className);正确接通过变量名alert(this.className//undefined能这}}对象实例进一切数据都是在内存中管理一切变量,包括对象都是在内存中管理的。。。。实例是如何在内存中任何变量都会占用内varnum=一切数据都是通过变量管理实例也是一个变量,他也是放在内存中的我们定义一个构造函数是不分配内存的,只有实例化的时候才分配内指针的概每个内存区域都有一个对应的地址,我们一般都是通过地址来找到这个值的就类似:门牌对象是如何在内存在内存中会开辟两端区域一片区域变量名称(地址),一段区域才实例名称当中保存的只是地址,具体的内容放在另一块区域里面实例拷贝原一旦你给实例赋给了新值,就会讲内存空间替换Function对我们定义的各种数据类型的变量最终其实都是一个对varstr=varstr=newString()varsum=1;var=new同样的,函数也是这样所有函数其实都是Function的实constructor属性其实就是Function对象的一个属性而已对象其实就是一个Function的一个实例而已。。。所以构造函数其实就是Function对象的一个实例而实例拷贝自构造函数,所以实例含有Function对象的所有属性和方其实constructor是构造函数的一个隐藏属性为什么实例含有constructor属因为实例的属性都是拷贝自构造函而constructor属性是构造函数中的一个隐藏属性原型的属性(方法)共享理原型对象不管实例化多少次,都只会生成一次。其实js中本来没有对象这个概念原型对象本质原型对象的属性和方法可以被所有实例共面试题理解属性共享理那么问题来了???既然不考虑,我怎么找到这个属(方法)呢属性搜索机制先在自身的属性列表中寻找,如果找到直接返回,如果找不到从原型中找双对象法就是通过一个属 (V8火狐的但是早期的微软浏览器不不是通过proto来实现原型的。但是proto已经成为ES5的一种标准。原型对象方原型对象属 属性是Function对象的一个属性而任何一个我们编写的函数其实都是Function对既然对象是函数实现的,那么对象当然也是Function的一个实例所以构造函数含有Function对象中的一切属性和方法而constructor属性prototype属性是Function对象中的属性之而实例化的时候会拷贝构造中的属性和方法,自然就有了constructor属性和prototype属性prototype属性:保存的就是地作用:将实例和原型对象联系在一起属性搜索机制的本质就是通过这个prototype属性中保存的地址原为什么:因为原型被所有实例共他们操作的其实是同一块内属性理如果原型中和构造函数中有相同的属性的话第一点:你要会用属性搜索法则寻找出属性的链第二点:如果我们想原型中的被掉的属性有两种方法使用Ptotype.属性或者方法名第二点第二点 /*清除乌云delete/*上午内容复对象实例进阶1:实例拷贝理2:var=new变量中保存其实只是一个地址值而已原型进原型属性被所有实例共享理为什么:因为原型被所有实例共他们操作的其实是同一块内面向对象的各种术语总Js对象其实是双对各种术语总面向对象的三个作用进1节面向对象的三个作用-封装性进封装trim面向对象的三个作用-数据绑定2节数据绑定:就是将返回给我们的json数据和前端的元素进行绑复进原型进描述数面向对象编为什么需要绑定为什
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论