zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    Siege 3.0 正式版发布,压力测试工具
    Pomm 1.1.2 发布,专为 PG 设计的 ORM 框架
    Whonix 0.5.6 发布,匿名通用操作系统
    国内开源 java cms,Jspxcms 2.0 发布
    EZNamespaceExtensions.Net v2013增加对上下文菜单、缩略图、图标、属性表的支持
    GNU Guile 2.0.9 发布,Scheme 实现
    jdao 1.0.4 发布 轻量级的orm工具包
    OpenSearchServer 1.4 RC4 发布
    Percona Server for MySQL 5.5.3030.2
    Samba 4.0.5 发布
  • 原文地址:https://www.cnblogs.com/goule/p/13540755.html
Copyright © 2011-2022 走看看