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 } }
  • 相关阅读:
    常见错误3——错误2 error C2143: 语法错误 : 缺少“;”(在“}”的前面)
    MFC DLL封装窗体详细步骤
    指针函数与函数指针的区别
    DOM
    BOM
    JS动态创建元素
    JS节点
    事件和节点部分总结
    DOM基础
    自定义对象
  • 原文地址:https://www.cnblogs.com/diantao/p/4604284.html
Copyright © 2011-2022 走看看