• JavaScript 对象


    对象:由属性和方法组成,用键值对定义,用于将数据和功能组织到一起

    新建对象:

    一)new构建:  new  Object ()

    二)字面量定义:

    var obj = {
        key : value,               //属性
        fn : function(){          //方法
        
        }
    }
    var obj1 = new Object();    //创建空对象
    obj1.name = '张三';            //赋值
    obj1.age = 23;
    var obj2 = new Object({name:'张三',age:'23'});     //创建空对象的同时,初始化处理
     
    var obj3={};             //创建空对象,常用字面量定义

    对象引用:

    对象名.属性名        对象名.方法名[实参]

    对象名[属性名]

    console.log(obj4.name);         //console.log(obj3["name"]);  
    obj4.fn('Hello','hahahaha');
    
    var str = 'aa';
    console.log(obj5[str]);        //当属性名为变量时,只能用[]取值,且不能加""

    面向对象(工厂模式):不推荐,不推荐,不推荐!

    成批创建相似对象,结构相同

    封装函数实现,缺点:不知创建的对象是哪个对象的实例

    function createObj(name,age){
        var obj = new Object();
        obj.name = name;
        obj.age = age;
        obj.fn = function(){
            return this.name+this.age;
        }
        return obj;
    }
    var obj1 = createObj('张三',23);
    var obj2 = createObj('李四',24);
    console.log(obj1.fn());                   //调方法

    构造函数创建类创建对象:推荐,推荐,推荐!

    顺序:一)new构造函数,后台执行new Object();

               二)new Object()参数代入构造函数的参数;

               三)执行构造函数的代码;

               四)返回新对象。

    function Person(name,age){             //构造函数首字母大写,实际为创建一个类
        this.name=name;                    //this表示实例化后的对象
        this.age=age;
        this.fn = function(){
            return this.name+this.age;
        }
    }
    var obj1 = new Person('张三',23);
    console.log(obj1);                         //Person{name:"张三",age:23,fn:function()}
    console.log(obj1.name);                    //张三
    
    console.log(obj1 instanceof Object);                //true
    console.log(obj1 instanceof Person);                //true
    console.log(typeof obj);                //typeof用来获取data类型,引用类型返回object
    var arr = [1,2,3];
    console.log(arr instanceof Object);     //引用类型都属于Object,true
    console.log(arr instanceof Array);      //true
  • 相关阅读:
    Centos6.5系统压力测试过程大量TIME_WAIT
    几种常用的数据库连接池
    weblogic弱密码检测
    ubuntu系统查看已安装的软件
    Flask Web中用MySQL代替SQLite
    SQLALCHEMY_TRACK_MODIFICATIONS adds significant异常的解决方法
    安装ipython时python setup.py egg_info错误的解决办法
    python manage.py runserver指定端口和ip
    Python连接mysql出错,_mysql_exceptions.OperationalError: (1045, "Access denied for user 'root'@'localhost' (using password: YES)")
    linux重启服务的脚本命令
  • 原文地址:https://www.cnblogs.com/goule/p/13540755.html
Copyright © 2020-2023  润新知