JavaScript高级特征之面向对象笔记

javascript面向对象
    * 函数
        * Arguments对象:
            * Arguments对象是数组对象
            * Arguments对象的length属性可以获取参数的个数
            * 利用Arguments对象模拟函数的重载效果(javascript中不存在函数重载)
        * 变量的作用域:
            * 全局变量与局部变量
                * 全局变量:全局域与函数域(局部域)
                * 局部变量:当前函数域
            * 全局域与函数域
            * 定义局部变量时,不使用"var",局部变量变成全局变量
            * 定义全局变量与局部变量同名时,函数域中只能访问局部变量
        * 几种特殊函数:
            * 匿名函数:没有名的函数
            * 回调函数:把一个函数作为参数传递给另一个函数,而作为参数的函数叫做回调函数
            * 自调函数:定义即调用
                * 第一个小括号:封装函数
                * 第二个小括号:调用函数(传参)
            * 内部函数:Java中的内部类
            * 返回函数的函数
    * 闭包
    * 对象
        * 定义对象:
            * 普通对象
                * new Object()
                * var 对象名 = {
                    属性名 : 属性值,
                    方法名 : function(参数){}
                }
            * 函数对象
                function 对象名(参数){
                    this.属性名 = 属性值;
                    this.方法名 = function(参数){}
                }
        * 调用对象:
            * 普通对象:
                * 调用:
                    * 第一种:
                        * 对象名.属性名;
                        * 对象名.方法名();
                    * 第二种:
                        * 对象名['属性名'];
                        * 对象名['方法名']();
                * 增加:
                    * 对象名.新的属性名 = 新的属性值;
                    * 对象名.新的方法名 = 新的function(){}
                * 修改:
                    * 对象名.属性名 = 新的属性值;
                    * 对象名.方法名 = 新的function(){}
                * 删除:
                    * delete 对象名.属性名;
                    * delete 对象名.方法名;
            * 函数对象:
                * 概念性理解:
                    * 函数对象的概念,实际上是不存在的
                    * 函数对象实际上是叫做构造器
                    * var 对象名 = new 构造器();
                * 获取到函数对象(构造器)的属性和方法
                    * var 对象名 = new 构造器();
                    * 调用、修改、删除及增加与操作普通对象一致。
        * 内建对象:
            * 数据封装类对象
                * String、Array、Number等
            * 工具类对象
                * Date、Math等
            * 错误类对象
                * Error、异常对象等
    * 在javascript中,只有对象(变量、方法、集合等)
        * javascript是更纯粹的面向对象
    * 原型(prototype):及其重要(作用)
        * 定义:原型就是一个函数对象的属性。
        * 作用:
            * 利用原型为函数对象增加属性和方法
            * 函数对象的属性或方法与原型的属性或方法同名时:
                * 函数对象本身的属性和方法的优先级要高于原型上的熟悉感和方法
                * 利用函数对象的属性和方法重写原型上的属性和方法
            * 内建对象(应该都是函数对象):都有prototype属性
                * 可以扩展内建对象的属性和方法
            * 实现继承
    * 继承
        * 定义:如果两个类都是同一个实例的类型,那么它们之间存在着某些关系,
                我们把同一个实例的类型之间的泛化关系称为“继承”。
        * 问题:
            * 在javascript中,是不存在继承的关系的(关键字 extend)!
            * 在javascript中,没有类的概念。
            * javascript就不是一个直接的面向对象语言。
        * "继承":
            * javascript中函数对象与函数对象之间的继承。
            * (了解)javascript中的普通对象之间,是否也存在"继承"关系呢?存在

猜你喜欢

转载自www.cnblogs.com/biaogejiushibiao/p/9428210.html