• js创建对象的几种方式


    直接上代码

    方法一:

    var person=new Object(); //创建了一个对象.
    person.name="tom"; //使用person对象对调用name属性,它的值为tom
    console.log(person.name); //显示name属性值
    person.say=function(){ //对person对象添加了一个say函数。
           console.log("person say");
    };
    person.say();

    方法二:

    var person={
        name:"tom",
    age:29, say:
    function(){ alert("hello person"); } }; //创建了一个对象 person.age=10;//为对象重新赋值 console.log(person.age);

    方法三:

    //js中定义类是使用function。
    var Person = function(name,age){ //我们在定义一个类。 相当于它具有一个有参数的构造函数。
        this.name =name;//类的属性
        this.age=age;
        this.say = function(){ //类的方法.
             console.log("say good");
        }
    }
    var p = new Person("fox",29); //定义Person类的一个对象p
    alert(p.name); //调用name属性

    方法四:工厂模式

    function createPerson(name,age,job){ 
             var o = {}; 
             o.name = name; 
             o.age = age; 
             o.job = job; 
             o.sayName = function(){ 
             console.log(this.name); 
    }; 
             return o; 
    } 
    var tanya = createPerson("tanya","30","female"); 
    var ansel = createPerson("ansel","30","male"); 
    tanya.sayName(); 
    ansel.sayName(); 
    

    方法五:

    var person={
      name:'tony',
      $age:null,
      get age(){
      if(this.$age==null){
        return new Date().getFullYear()-1986;
        }else{
            return this.$age;
        }
    },
        set age(val){
          if(!isNaN(val)&&val>0&&val<100){
            this.$age=val;
        }else{
          throw new Error('Incorrect val ='+val)
        }
    }
    }
    var one =Object.create(person);
    one.father="li";
    one.mother="wang";
    //输出one对象自己的属性,这里涉及到原型链
    for(p in one){ if(one.hasOwnProperty(p)){ console.log(one[p]);//li,wang } }
  • 相关阅读:
    【数据结构栈应用系列】括号匹配
    【二叉树系列】二叉树课程大作业
    Tomcat在Linux上的安装与配置
    索引介绍及创建与删除索引
    Java 内存溢出(java.lang.OutOfMemoryError)的常见情况和处理方式总结
    Tomcat的配置文件server.xml叙述
    问题及解决方法
    Oracle DB 查看预警日志
    报表简介
    Nginx负载均衡与反向代理—《亿级流量网站架构核心技术》
  • 原文地址:https://www.cnblogs.com/diantao/p/4604284.html
Copyright © 2020-2023  润新知