码迷,mamicode.com
首页 > 编程语言 > 详细

初识Javascript的面向对象

时间:2015-08-15 10:30:13      阅读:119      评论:0      收藏:0      [点我收藏+]

标签: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指向对象。

版权声明:本文为博主原创文章,转载还请留言。

初识Javascript的面向对象

标签:javascript   面向对象编程   面向对象   对象   继承   

原文地址:http://blog.csdn.net/u014420383/article/details/47678899

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!