第205天:面向对象知识点总结
一、面向对象和传统开发的区别
面向对象开发
- 分析需要的对象
- 分析每个对象需要的属性和方法
- 依次实现每个对象
- 面向对象编程(直接使用封装好的方法)
传统开发四要素 – 牢记
- 定义变量保存数据
- 获取元素
- 绑定元素
- 绑定事件
二、json
JSON全称为JavaScript对象简单表示法(JavaScript Object Notation)
即通过字面量来表示一个对象,
从简单到复杂均可使用此方式。
1、字面量创建的对象和json对象区别
2、json语法规范
Json虽然语法规则要求加个” ”,但是其实不加也是正确的。
字面量其实就是原型对象的一个实例。
我们在使用对象的字面量形式(json)的时候不需要再实例化。
3、json协议
json是一个协议,只要我们将数据转换成这个格式,就能实现传输,至于如何传输的,不必知道
4、Json协议和json对象有什么关系
JSON协议事实上已经作为一种前端与服务器端的数据交换格式,是一种国际标准。他不是语言,他只是一个规范,按照这种规范写法就能实现数据传递。
ajax,后台一般传递给我们的数据格式是json字符串,我们拿到数据之后,将其转化成json对象,再做其他处理
5、json对象和字符串的转换
将json对象转化成json字符串
JSON.stringify(obj)将JSON转为字符串
var aToStr=JSON.stringify(a);
将json字符串转化成json对象
通过eval() 函数可以将JSON字符串转化为对象。
JSON.parse(string)将字符串转为JSON对象;
var bToObj=JSON.parse(b);
json是数据传输通用协议
三、XML
Xml只是描述数据的一种结构
1、XML作用
树结构存储数据
文本数据库
统一通信协议
不同平台之间通讯
html是xml的一种结构
前后台沟通的桥梁xml、 json
既可以用json 也可以用xml
Web前端开发 json更流行
2、Xml语法规则
- 所有 XML 元素都须有关闭标签
- XML 标签对大小写敏感
- XML 必须正确地嵌套
- XML 文档必须有根元素
- XML 的属性值须加引号
3、Json和xml的相同点和不同点
相同点:
都是一种通用协议
都可以用来描述数据
不同点:
JSON相对于XML来讲,数据的体积小,传递的速度更快些。
xml专用带宽大,json占用带宽小
json没有xml这么通用
json可以和js对象互相转换,和js是天生的一对,因此广泛用于前端开发
XML已经被业界广泛的使用,而JSON才刚刚开始,但是在Ajax这个特定的领域,未来的发展一定是XML让位于JSON。到时Ajax应该变成Ajaj(Asynchronous Javascript and JSON)了
四、构造函数
1、构造函数和普通函数的区别
对象其实是使用函数实现的
对象本身就是一个函数
如果一个函数用于创建对象,我们一般称之为构造函数。
2、构造函数四种创建方式
参数传参
默认值
动态添加属性
混合模式
3、构造语法规范
成员(属性)定义规范:
this.name
成员(方法)定义规范:
this.buy=function(){
alert('buy')
}
属性访问 - 点语法
4、Instanceof
如何判断某个实例是否是根据某个构造函数创建的
If(p1 instanceof Product){
Alert(‘true)
}
js构造函数本身就是一个函数,所以拥有函数的一切的特性
如果return一个对象,则new的时候返回的是return的对象
5、实例拷贝原理
内存分配会自动拷贝构造对象的所有属性,并赋以实例的值
当你实例化一个对象,那么内存中会开辟两个内存区域:一个保存实例名称变量:其保存的只是地址
一个保存对象的真正的数据
6、constructor
1,实例化的过程其实就是拷贝构造函数属性的过程
2,除了拷贝以外还会自动生成一个constructor属性,用于识别其是根据哪个构造函数创建的实例。
7、构造函数和原型对象的区别
构造函数创建的实例不能共享属性和方法,浪费内存
原型对象中的工具被所有实例所共享
一般将大家都公有的东西放在原型对象中
每个实例独特的不一样的属性放在构造函数中
五、双对象法则
1、通过原型方式创建对象的原理
通过原型创建对象,其实创建的是两个对象
构造函数对象
原型对象
当我们实例化的时候,该实例自动拷贝构造函数的所有属性和方法,而对于原型对象,则不拷贝,而是通过一个属性‘铁链’
2、双对象的名称
构造函数对象的名称:就是函数名称
原型对象的名称:古怪点:函数名称.prototype
双对象第一个对象:构造函数(对象)
构造函数对象
构造函数对象中的属性方法
构造属性 方法
双对象第一个对象:原型对象
原型
原型对象
原型属性 原型方法
3、hasOwnProperty() 方法
可以判定一个属性是存在于构造对象的实例上还是原型对象上。该 方法继承自 Object。
如果是实例对象—ture
如果是原型对象 – false
4、面向对象的三个作用
面向对象编程
描述数据 - -对象的字面量形式--json
封装框架
5、创建对象的方式
字面量
Object
内置对象
构造函数
原型对象
拷贝
工厂
第三方
6、面向对象三大对象
内置对象
字符串,数组,日期,正则,数字,数学,错误,函数
BOM对象
windows ,document ,location ,history
自定义对象
HTTP是Hyper Text Transfer Protocol,超文本传输协议;
FTP是File Transfer Protocol,文件传输协议;
简单说HTTP是面向网页的,而FTP是面向文件的。
7、innerHTML与innerText
innerHTML与innerText的区别:
就是对HTML可以放置html代码,Text不会输出HTML代码
Text只有IE支持,不建议使用
alert(document.getElementById("p1").innerText);
alert(document.getElementById("p2").innerHTML);
8、new 的本质
当我们new 一个实例后,系统自动做了如下事情
创建一个空对象 var p = {}
拷贝构造函数中的方法属性到空对象中
自动成生一个属性_proto_指向类的原型p.__proto__ = XXXX.prototype
9、Object对象是Function对象的一个实例
所以Object的__proto__属性指向Function对象的原型
Object._proto_===Function.prototype
所有内置对象都是Function对象的实例
Object和 任何函数都是指向Function.prototype
五、面向对象三大特性
封装
继承
多态
继承可以减少代码重复
我们一般将相同的属性放在父类中
自己独特的属性放在自身对象中
继承就是定义一个新的对象,继承另一个对象的方法和属性
前面通过原型方式创建一个对象A,其可以使用Object中的所有属性和方法,这里我们就说A对象继承了Object对象。
继承的本质就是通过__proto__指针指向某个对象,系统能够自动链式访问所指向的对象的属性方法
整个js世界都继承自Object,都可以访问Object中的方法和属性。
所以,Object是所有对象的祖先,是生命诞生的鼻祖
所有的内置对象都继承在Object,除了拥有自身的方法和属性之外,还拥有Object的所有属性和方法
第205天:面向对象知识点总结相关推荐
- python 完全面向对象_史上最全的Python面向对象知识点疏理
原标题:史上最全的Python面向对象知识点疏理 面向对象技术简介 类: 用来描述具有相同的属性和方法的对象的集合.它定义了该集合中每个对象所共有的属性和方法.对象是类的实例.class 类变量:类变 ...
- java面向对象知识点整理--用前人智慧,为后人铺路
自己学习Java面向对象时对知识点的整理总结,主要包括:一些关键字.权限修饰符的使用.重载.构造器.代码块.内部类.封装.继承.多态.抽象.javabean.单元测试.包装类Object类.设计模式的 ...
- java面向对象知识点02
(面向对象第二张,我们已经学习过半,所学内容也都复杂起来.如有小伙伴发现错误,请在评论区留言让我即使更正,不要误导别人) 8.static静态 使用static去访问变量时,推荐使用类名进行访问. 特 ...
- python全栈开发 * 22 面向对象 知识点汇总 * 180703
22 面向对象 -----属性,类方法,静态方法,反射一.属性1.属性的定义:将方法伪装成属性,虽然在代码层面上没有任何高深之处,但让其看起来更合理. (类似于属性的方法)class Person: ...
- python最全知识点_史上最全的Python面向对象知识点疏理
51CTO诚邀您9月23号和秒拍/国美/美团元专家一路聊智能CDN的优化之路,抓紧时光哦! 面向对象技巧简介 类: 用来描述具有雷同的属性和办法的对象的集合.它定义了该集合中每个对象所共有的属性和办法 ...
- python类对象点处折行_史上最全的Python面向对象知识点疏理(对象是类的实例)
(对象是类的实例) 面向对象技术简介 类:用来描述具有相同的属性和方法的对象的集合.它定义了该集合中每个对象所共有的属性和方法.对象是类的实例.class 类变量:类变量在整个实例化的对象中是公用的. ...
- python对象点方法_python面向对象知识点疏理
面向对象技术简介 类:用来描述具有相同的属性和方法的对象的集合.它定义了该集合中每个对象所共有的属性和方法.对象是类的实例.class 类变量:类变量在整个实例化的对象中是公用的.类变量定义在类中且在 ...
- Java面向对象知识点总结(全)
1.封装 定义 封装就是把对象的属性(状态)和方法(行为)结合在一起,并尽可能隐蔽对象的内部细节,成为一个不可分割的独立单位(即对象),对外形成一个边界,只保留有限的对外接口使之与外部发生联系. 原则 ...
- 面向对象学不会看不懂?一文详解面向对象知识点总结
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. PS:如有需要Python学习资料的小伙伴可以点击下方链接自行获取 Python免费学习资料 ...
最新文章
- 中原大学 php,台湾中原大学php教程孙仲岳主讲
- 网上搜集了点资料,学web的人互相分享共同进步吧(php编码的好习惯必须养成)...
- ASP.NET froms 身份验证之Roles
- android adb常用指令
- cname 别名记录 解析过程_云解析是什么?需要购买吗?
- 如何用Python破解验证码,适合新手练手
- C语言学习笔记---字符串拼接函数 strcat() 和 strncat()
- mysql long varchar2_案例:Oracle数据库long查询结果转换为varchar2类型方法的操作步骤...
- 免费资源下载:超酷超全的PSD按钮资源
- MySQL使用内置函数来进行模糊搜索locate()与like的不同
- 基于C语言的个人信息管理系统
- Maya2018基础(二)展UV
- java ssm 运行步骤_SSM项目整合基本步骤
- 2022-2028年中国公私合作(PPP)模式深度分析及发展战略研究报告
- 公众号引流进阶教程(公众号对接电影,影视资源)
- poj java_POJ 3083 java实现
- 医院排队叫号管理系统源码
- pandas学习手记-柱状图
- Keil_uvision 基本使用教程
- java 骑士飞行棋_C#实现骑士飞行棋