zoukankan      html  css  js  c++  java
  • 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 } }
  • 相关阅读:
    temp
    JAVA&nbsp;存储空间 寄存器 堆栈 堆…
    数据类型、变量、数组类
    ubuntu ARP 防御
    详解 JAVA 创建对象 NEW
    Eclipse常见问题集锦
    解决error:2014 Commands out of sync; you can't run this command now
    关于MySql5“data too long for column”问题的探解
    Notepad++编辑Pyhton文件的自动缩进的问题(图文)
    mysql 'latin1' codec can't encode characters的问题
  • 原文地址:https://www.cnblogs.com/diantao/p/4604284.html
Copyright © 2011-2022 走看看