创建对象常用的四种方式Ⅰ

一、创建对象常用的几种方式

1.字面量方式

var obj = {
  name:"kitty", //属性
  say:function(){ //方法
    console.log("my name is"+obj.name);
  }
}
obj.say(); //my name is kitty

我们传统方式是这样写的:
var name= "Tom";
function eat(){
  console.log("汉堡");
}
var name = "Mary";
function eat(){
  console.log("面条");
}
console.log(name); //只会输出Mary
eat(); //只会执行面条
Mary覆盖了Tom,要想不被覆盖要声明不一样的变量
----------------------------------------
用字面量方法,即使变量名一样也不会被影响
var person1 = {
  name:"Tom",
  eat:funtion(){
    console.log(person1.name+"汉堡");//person1可换成this(详见上一篇)
    /*推荐大家在对象内部操作当前对象的属性和方法时用this
    因为如果因为某些原因要去改这个person1,下面不需跟着改动,可维护性高*/
  }
}
var person2 = {
  name:"Tom",
  eat:funtion(){
    console.log(person2.name+"面条");
  }
}
console.log(person1.name);
console.log(person2.name);
person1.eat();
person2.eat();

对象数据类型:可以给数据进行分组,即使属性名和方法名重复,也不会发生覆盖
在开发复杂系统的时候,需要多人协作开发,每个人负责不同的模块
eg:
A同学创建了一个模块

function change(){
}

B同学又加入了一个模块

function change(){
}

那么,两者发生了冲突,怎么办呢?

//a同学这样写
var a = {
  change:function(){
  }
}
//b同学这样写
var b = {
  change:function(){
  }
}

完美解决。。
用面向对象的方式写代码 能够实现最基础的一个模块化开发

2.用new创建一个对象

var obj = new Object(); //创建一个空对象
obj.name = "jack";
obj.say = function(){
  console.log("i believe i can fly");
}

二、面向对象编程好处

· 可以解决数据分组的问题
· 如果一些数据是描述同一个事物的 我们可以把它们装到一起 不会发生覆盖
· 可以实现模块化开发

你可能感兴趣的:(创建对象常用的四种方式Ⅰ)