JavaScript创建对象几种方式

来源:互联网 发布:加盟淘宝网店是真的吗 编辑:程序博客网 时间:2024/06/06 23:51
//利用函数来创建一个对象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

0 0