初识Javascript的面向对象

面向对象编程概念—————————————————————–

用对象的思想去写代码,就是面向对象编程
过程式写法
面向对象写法

我们一直都在使用对象
数组 Array  时间 Date

面向对象编程(OOP的特点)—————————————————————-

抽象:抓住核心问题
封装:只能通过对象来访问方法
继承:从已有对象上继承出新的对象
多态:多对象的不同形态

对象的组成——————————————————————-

方法(行为、操作)——函数:过程、动态的

属性——变量:状态、静态的

工厂方式——————————————————————–

工厂方式就是面向对象中的封装函数

改成与系统对象类似写法
    首字母大写
    New 关键字提取 当new关键字调用一个函数时,那么函数中的this指向new创建
    的这个对象,而且函数的返回值直接就是this了。(隐式返回)


构造函数 new后面调用的函数
    用来创建对象的函数,叫做构造函数

存在的问题
    对象的引用 : 对象的赋值不仅仅是值的复制,也是引用的传递
    浪费内存 : 构造函数的属性如果是引用的话,当new了很多相应对象时,
    也引用了很多内存块,造成浪费,应该让这些相同的引用指向一个内存块。

    类似于 
    var a=[1,2,3];
    var b=[1,2,3];
    var c=[1,2,3];

    优化为
    var a=b=c=[1,2,3];

原型prototype——————————————————————–

概念
    改写对象下面公用的方法或者属性,让公用的方法或属性在内存中存在一份
    好处:提高性能。

学习原型
    类比  
        原型 : CSS中的Class ,重用的样式写在class里面,调用class就能得到相应样式

        普通方法 :CSS中的style,每次要得到相应的样式时style都要重新写

        如果一个对象同时拥有同名的原型方法和普通方法,那么普通方法
        的优先级比较高(相当于重写)

    写法
        构造函数名.原型.[方法|属性]
        原型 prototype 要写在构造函数的下面.

通过原型改写工厂方式
    原则
        相同的属性和方法可以加载原型上
        混合的编程模式

总结面向对象写法
  构造函数加属性,原型加方法

  function 构造函数(){
        this.属性;
  }
  构造函数.原型.方法1 = function(){};
  构造函数.原型.方法2 = function(){};

  var 对象1 = new 构造函数名();
  对象1.方法2();
  var 对象2 = new 构造函数名();
  对象2.方法1();

面向对象的选项卡———————————————————————

原则
    先写出普通的写法,然后改成面向对象写法
        普通方法变型
            尽量不要出现函数嵌套函数
            可以有全局变量
            把onload中不是赋值的语句放到单独函数中

        改成面向对象
            全局变量就是属性
            函数就是方法
            Onload中创建对象
            改this指向问题:事件或定时器的时候
            尽量让面向对象中的this指向对象。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值