JavaScript基础 day05(一)

面向过程:凡事都要亲力亲为,每件事的具体过程都要知道,注重的是过程
面向对象:根据需求找对象,所有的事都用对象来做,注重的是结果

面向对象特性:封装,继承,多态 (抽象性)
js不是面向对象的语言,但是可以模拟面向对象的思想
js是一门基于对象的语言:

什么是对象?
看的见,摸得到,具体特指的某个东西

分析对象有什么特点:特征和行为

对象:有特征和行为,具体特指的某一个事物

对象:有属性和方法,具体特指的某个事物
--------------------------------------------------------------------------------------------------------------------------------
//创建对象三种方式:

1.调用系统的构造函数创建对象
var 变量名= new Object(); Object 是系统的构造函数 Array

//第一种创建对象例子 
//实例化对象
var obj = new Object();          
//对象有特征---属性和行为---方法
//添加属性-----如何添加属性?  对象.名字=值;
obj.name = "小苏";
obj.age = 38;
obj.sex = "女";
//添加方法----如何添加方法? 对象.名字=函数;
obj.eat = function () {
  console.log("我喜欢吃油炸榴莲凉拌臭豆腐和大蒜");
};
obj.play = function () {
  console.log("我喜欢玩飞机模型");
};
obj.cook = function () {
  console.log("切菜");
  console.log("洗菜");
  console.log("把菜放进去");
  console.log("大火5分钟");
  console.log("出锅");
  console.log("凉水过一下");
  console.log("放料,吃");
};
console.log(obj.name);//获取--输出了
console.log(obj.age);
console.log(obj.sex);
//方法的调用
obj.eat();
obj.play();
obj.cook();

2.自定义构造函数创建对象(结合第一种和需求通过工厂模式创建对象)

//该方式主要用于一次性创建多个对象,也就是把创建对象的代码封装在一个函数中
//工厂模式创建对象
function createObject(name,age) {
  var obj = new Object();//创建对象
  //添加属性
  obj.name = name;
  obj.age = age;
  //添加方法
  obj.sayHi = function () {
    console.log("阿涅哈斯诶呦,我叫:" + this.name + "我今年:" + this.age);
  };
  return obj;
}
//创建人的对象
var per1 = createObject("小芳",20);
per1.sayHi();
//创建一个人的对象
var per2 = createObject("小红",30);
per2.sayHi();

//自定义构造函数创造对象
//函数和构造函数的区别;名字是不是大写(首字母是大写)
function Person(name,age) {
  this.name=name;
  this.age=age;
  this.sayHi=function () {
    console.log("我叫:"+this.name+",年龄是:"+this.age);
  };
}

//自定义构造函数创建对象:先自定义一个构造函数,创建对象
var obj=new Person("小明",10);
console.log(obj.name);
console.log(obj.age);
obj.sayHi();

var obj2=new Person("小红",20);
console.log(obj2.name);
console.log(obj2.age);
obj2.sayHi();


console.log(obj instanceof Person);
console.log(obj2 instanceof  Person);


//自定义狗的构造函数,创建对象
function Dog(name,age,sex) {
  this.name=name;
  this.age=age;
  this.sex=sex;
}
var dog=new Dog("大黄",20,"男");
console.log(dog instanceof Person);//false
console.log(dog instanceof Dog);

自定义构造函数做了如下几件事
* 1. 在内存中开辟(申请一块空闲的空间)空间,存储创建的新的对象
* 2. 把this设置为当前的对象
* 3. 设置对象的属性和方法的值
* 4. 把this这个对象返回

3.字面量的方式创建对象

var obj={};
obj.name="小白";
obj.age=10;
obj.sayHi=function () {
  console.log("我是:"+this.name);
};
obj.sayHi();
var obj2={
  name:"小明",
  age:20,
  sayHi:function () {
    console.log("我是:"+this.name);
  },
  eat:function () {
    console.log("吃了");
  }
};
obj2.sayHi();
obj2.eat();

猜你喜欢

转载自blog.csdn.net/qq_40301211/article/details/82941560