zoukankan      html  css  js  c++  java
  • 第205天:面向对象知识点总结

    一、面向对象和传统开发的区别

    面向对象开发

    1. 分析需要的对象
    2. 分析每个对象需要的属性和方法
    3. 依次实现每个对象
    4. 面向对象编程(直接使用封装好的方法)

    传统开发四要素 – 牢记

    1. 定义变量保存数据
    2. 获取元素
    3. 绑定元素
    4. 绑定事件

    二、json

    JSON全称为JavaScript对象简单表示法(JavaScript Object Notation)

    即通过字面量来表示一个对象,

    从简单到复杂均可使用此方式。

    1字面量创建的对象和json对象区别

     


    2json语法规范

    Json虽然语法规则要求加个” ”,但是其实不加也是正确的。

    字面量其实就是原型对象的一个实例。

    我们在使用对象的字面量形式(json)的时候不需要再实例化

    3json协议

    json是一个协议,只要我们将数据转换成这个格式,就能实现传输,至于如何传输的,不必知道

    4Json协议和json对象有什么关系

    JSON协议事实上已经作为一种前端与服务器端的数据交换格式,是一种国际标准。他不是语言,他只是一个规范,按照这种规范写法就能实现数据传递。

    ajax,后台一般传递给我们的数据格式是json字符串,我们拿到数据之后,将其转化成json对象,再做其他处理

    5json对象和字符串的转换

    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只是描述数据的一种结构

    1XML作用

    树结构存储数据

    文本数据库

    统一通信协议

    不同平台之间通讯

    htmlxml的一种结构

    前后台沟通的桥梁xml、 json

    既可以用json 也可以用xml

    Web前端开发 json更流行

    2Xml语法规则

    • 所有 XML 元素都须有关闭标签
    • XML 标签对大小写敏感
    • XML 必须正确地嵌套
    • XML 文档必须有根元素
    • XML 的属性值须加引号

    3Jsonxml的相同点和不同点

    相同点:

    都是一种通用协议

    都可以用来描述数据

    不同点:

    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')
        }

    属性访问 - 点语法

    4Instanceof

    如何判断某个实例是否是根据某个构造函数创建的

    If(p1 instanceof Product){

    Alert(‘true)

    }

    js构造函数本身就是一个函数,所以拥有函数的一切的特性

    如果return一个对象,则new的时候返回的是return的对象

    5、实例拷贝原理

    内存分配会自动拷贝构造对象的所有属性,并赋以实例的值

    当你实例化一个对象,那么内存中会开辟两个内存区域:一个保存实例名称变量:其保存的只是地址

    一个保存对象的真正的数据

    6constructor

    1,实例化的过程其实就是拷贝构造函数属性的过程

    2,除了拷贝以外还会自动生成一个constructor属性,用于识别其是根据哪个构造函数创建的实例。

    7、构造函数和原型对象的区别

    构造函数创建的实例不能共享属性和方法,浪费内存

    原型对象中的工具被所有实例所共享

    一般将大家都公有的东西放在原型对象中

    每个实例独特的不一样的属性放在构造函数中

    五、双对象法则

    1通过原型方式创建对象的原理

    通过原型创建对象,其实创建的是两个对象

    构造函数对象

    原型对象

    当我们实例化的时候,该实例自动拷贝构造函数的所有属性和方法,而对于原型对象,则不拷贝,而是通过一个属性‘铁链’

    2双对象的名称

    构造函数对象的名称:就是函数名称

    原型对象的名称:古怪点:函数名称.prototype

    双对象第一个对象:构造函数(对象)

    构造函数对象

    构造函数对象中的属性方法

    构造属性 方法

    双对象第一个对象:原型对象

    原型

    原型对象

    原型属性 原型方法

    3hasOwnProperty() 方法

    可以判定一个属性是存在于构造对象的实例上还是原型对象上。该 方法继承自 Object

    如果是实例对象ture

    如果是原型对象false

    4、面向对象的三个作用

    面向对象编程

    描述数据 - -对象的字面量形式--json

    封装框架

    5、创建对象的方式

    字面量

    Object

    内置对象

    构造函数

    原型对象

    拷贝

    工厂

    第三方

    6、面向对象三大对象

    内置对象

    字符串,数组,日期,正则,数字,数学,错误,函数

    BOM对象

    windows document location history

    自定义对象

    HTTPHyper Text Transfer Protocol,超文本传输协议;

    FTPFile Transfer Protocol,文件传输协议;

    简单说HTTP是面向网页的,而FTP是面向文件的。

    7innerHTMLinnerText

    innerHTMLinnerText的区别:

    就是对HTML可以放置html代码,Text不会输出HTML代码

    Text只有IE支持,不建议使用

    alert(document.getElementById("p1").innerText);

    alert(document.getElementById("p2").innerHTML);

    8new 的本质

    当我们new 一个实例后,系统自动做了如下事情

    创建一个空对象  var p = {}

    拷贝构造函数中的方法属性到空对象中

    自动成生一个属性_proto_指向类的原型p.__proto__ =  XXXX.prototype

    9Object对象是Function对象的一个实例

    所以Object__proto__属性指向Function对象的原型

    Object._proto_===Function.prototype

    所有内置对象都是Function对象的实例

    Object和 任何函数都是指向Function.prototype

    五、面向对象三大特性

    封装

    继承

    多态

    继承可以减少代码重复

    我们一般将相同的属性放在父类中

    自己独特的属性放在自身对象中

    继承就是定义一个新的对象,继承另一个对象的方法和属性

    前面通过原型方式创建一个对象A,其可以使用Object中的所有属性和方法,这里我们就说A对象继承了Object对象。

    继承的本质就是通过__proto__指针指向某个对象,系统能够自动链式访问所指向的对象的属性方法

    整个js世界都继承自Object,都可以访问Object中的方法和属性。

    所以,Object是所有对象的祖先,是生命诞生的鼻祖

    所有的内置对象都继承在Object,除了拥有自身的方法和属性之外,还拥有Object的所有属性和方法

  • 相关阅读:
    eclipse工具
    Tag
    JSP模版
    Eclipse断点调试
    JavaBean
    验证码设计
    在IE中提示404错误
    序列化与反序列化
    文件编码问题
    强类型,弱类型和推断类型
  • 原文地址:https://www.cnblogs.com/le220/p/8615259.html
Copyright © 2011-2022 走看看