JavaScript创建对象几种方式

//利用函数来创建一个对象
function People(name){
    this.name = name;

    this.printName = function(){
        console.log(name);
    };
}
var p1 = new People('LouKit');


//直接采用对象创建
var obje = new Object();
obj.name = 'LouKit';
obj.printName = function(){
	 console.log(obj.name);
};

//利用对象字面量方式来创建
 var obj = {

 	name: 'LouKit',
    printNmae: function(){
        console.log(obj.name);
    }
 }

 ===============================================
//来个需求利用对象字面量方式来创建两个对象出来

//构造对象
var obj1 = {
    name: 'LouKit1',
    age: 100,
    printName: function(){
        console.log(obj1.name);
    }
}
var obj2 = {
    name: 'LouKit2',
    age: 91,
    printName: function(){
        console.log(obj2.name);
    }
}

//有没有感觉太麻烦了,不符合‘面向对象’,那转变下采样抽出参数,利用函数做做自动化
 ===============================================

 function createObj(name, age){
  var obj = {
    name: name,
    age: age,
    printName: function(){
            console.log(this.name);
        }
  };
  return obj;
}
var obj1 = createObj('LouKit1', 30);
obj1.printName();

var obj2 = createObj('LouKit2', 25);
obj2.printName();

//发线一个问题通过参数避免了每次都创建对象的麻烦 但构造高出来的对象都是Object类型对象

//那换成这样:
function Person(name, age){
    this.name=name,
    this.age=age,
    this.printName=function(){
            console.log(this.name);
     }
}
var obj1 = new Person('LouKit1',20);
var obj2 = new Person('LouKit2',21);

//好像解决问题了,创建出来的对象也有自己的类型(Person),但每个实例的printName实际上作用一样,
//每个实例要重复一遍,大量对象存在的时候是浪费内存

//那就再换种,原型方式
function Person(name, age){
    this.name=name,
    this.age=age,
}
Person.prototype.printName = function(){
    console.log(this.name);
}
、、、、、解决问题了



参考文章:

http://www.cnblogs.com/dolphinX/p/4385862.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值