zoukankan      html  css  js  c++  java
  • JavaScript面向对象之对象的声明、遍历和存储

    一、对象的声明

    1. 使用字面量(json格式)的方式构建对象

    var obj={
       属性名:属性值,
       方法名:function(){
          //函数执行体
       }
    }

    2. 使用 new Object() 的方式构建对象

    var obj=new Object();
    obj.属性名=属性值;
    obj.方法名=function(){
       //函数执行体
    }

    3. 使用 Object.create(obj) 的方式构建对象

    var Foo={
       属性名:属性值,
       方法名:function(){
          //函数执行体
       }
    }
    var obj=Object.create(Foo);

    注意:使用此方式创建出来 obj.__proto__ = Foo

    4. 使用构造函数的方式构建对象

    function Foo([参数列表]){
       this.属性名=属性值;
       this.方法名=function(){
          //函数执行体
       }
    }
    var obj=new Foo(参数);

    5. 使用工厂方式构建对象

    function createObject(nam,age){
       var Foo=new Object();
       Foo.name=name;
       Foo.age=age;
       Foo.run=function(){
          return this.name+this.age
       };
       return Foo;
    }
    var obj1=createObject(‘zhangsan’,100);
    var obj2=createObject(‘lisi’,200);

    6. 使用原型模式构建对象

    function Foo(){
       Foo.prototype.属性名=属性值;
       Foo.prototype.方法名=function(){
          //函数执行体
       }
    }
    var obj=new Foo();

    7. 使用混合模式构建对象

    function Foo(参1,参2){
       this.属性名1=参1;
       this.属性名2=参2;
    }
    Foo.prototype.方法名=function(){
       //执行代码
    }
    var obj=new Foo(参1,参2);

    二、对象的遍历

    • for-in是为遍历对象而设计的,不适用于遍历数组。

    • 遍历数组的缺点:数组的下标index值是数字,for-in遍历的index值"0","1","2"等是字符串

    var obj={
        name:"Zhangsan",
        age:"18",
        action:function(){
            alert("Hello!");
        }
    }
    for (var i in obj){
        console.log(i);    //控制台依次显示:name  age  action
    }
    for (var i in obj){
        console.log(obj[i]);    //控制台依次显示:Zhangsan  18  ƒ (){alert("Hello!");}
                alert("Hello!");
            }
    }

    三、对象的存储

    var obj={}
        obj.name="Zhangsan";
        obj.age="18";
        obj.action=function(){
            alert("Hello!");
        }
     
  • 相关阅读:
    Win10开始菜单中的天气不更新问题的解决方法
    Visual Studio 2017 的 JavaScript 调试功能的关闭
    Win10安装bash慢的解决方案
    关于 Google Chrome “Your connection is not private” 问题的处理
    关于 Inno Setup 报木马的问题处理
    Windows防火墙出站、入站相关知识总结
    关于Navicat Premium导入xlsx的问题
    关于VIM在Win10下的无意义折腾
    Mindjet MindManager 2016/2017 折腾记录
    2019腾讯前端技术大会资源TWeb
  • 原文地址:https://www.cnblogs.com/Leophen/p/11132481.html
Copyright © 2011-2022 走看看