zoukankan      html  css  js  c++  java
  • JavaScript创建对象的6种方式

    JavaScript创建对象简单的说,无非就是使用内置对象(Object)或各种自定义对象,当然还可以用JSON,但写法有很多种,也能混合使用。

    1、对象字面量的方式

    person = {name : 'limengyi' , age = 21 };

    2、用function来模仿无参构造函数

    	function Person(){};
    
    	//定义了一个function,如果使用new“实例化”,该function可以看作一个class
        var person = new Person();
    
        person.name = 'limengyi';
        person.age = 21;
        person.sayInfo = function(){
            alert("我叫 "+person.name+","+person.age+"岁");
        }
    
        person.sayInfo();
    	
    

    3、用function来模拟有参构造函数(用this关键字定义构造的上下文属性)

    	function Person(name,age){
            this.name=name;		//this作用域:当前对象
            this.age=age;
            this.sayInfo=function(){
                alert("我叫 "+this.name+","+this.age+"岁")
            }
        }
    
        var person = new Person('limengyi',21);
    
        person.sayInfo();
    	
    

    4、用工厂方式来创建(使用内置对象Object)

    	var person = new Object();
    
        person.name='limengyi';
        person.age=21;
        person.sayInfo=function(){
            alert("我叫 "+person.name+","+person.age+"岁")
        }
    
        person.sayInfo();
    	
    

    5、用原型方法创建

    	function Person(){};
    
        Person.prototype.name='limengyi';
        Person.prototype.age=21;
        Person.prototype.sayInfo=function(){
             alert("我叫 "+this.name+","+this.age+"岁")
        }
           
    	var person = new Person();
    
        person.sayInfo();
    	
    

    6、用混合方式(有参构造函数 + 原型方法)创建

    用有参构造函数设置每个实例特有的属性和方法
    用原型方法设置所有实例共享的属性和方法

    	function Person(name,age){
            this.name=name;
            this.age = age;
        }
    
        Person.prototype.sayInfo=function(){
            alert("我叫 "+this.name+","+this.age+"岁")
        }
       
    	var person1 = new Person('limengyi',21);
    	var person2 = new Person('lee',12);
    
        person1.sayInfo();	//"我叫 limengyi,21岁"
        person2.sayInfo();	//"我叫 lee,12岁"
    	
    
  • 相关阅读:
    integer to roman
    String to Integer (atoi)
    zigzag conversion
    Longest Palindromic Substring(最长回文子串)
    Longest Substring Without Repeating Characters
    letter combinations of a phone number(回溯)
    remove Nth Node from linked list从链表中删除倒数第n个元素
    generate parentheses(生成括号)
    排序算法入门之堆排序(Java实现)
    Integer 和int 比较
  • 原文地址:https://www.cnblogs.com/limengyi/p/6171440.html
Copyright © 2011-2022 走看看