• 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 } }
  • 相关阅读:
    马尔科夫模型
    统计自然语言处理(第2版)目录
    linux运维学习笔记随想
    Redis 入门:(1)Linux下使用
    TextRank算法原理及应用示例
    实验十 团队作业6:团队项目用户验收&Beta冲刺
    关于tensorflow
    实验九 团队作业6:团队项目编码&Alpha冲刺
    实验八 团队作业4—团队项目需求建模与系统设计
    实验七 团队作业3:团队项目需求分析与原型设计
  • 原文地址:https://www.cnblogs.com/diantao/p/4604284.html
Copyright © 2020-2023  润新知