面向对象就是拿别人写好的功能对象,调用对象的方法即可。核心思想:封装。
对象的创建
对象:一系列属性和方法的无序集合。
类:学生(不具体,抽象,模板) 老师 狗 动物
对象:张飞(具体,抽象,模板产生的一个具体的实例)
由类产生对象:
Array —>var arr = [12,34,3,5]
通过类产生对象的这个过程:实例化对象
1.字面量创建对象
var obj = {name:"tianIn"};
2.内置的object创建对象
var obj = new Object();//{}
obj.name = "tianIn";
obj.age = "18";
console.log("obj");
由类产生对象
3.构造函数创建对象(ES3)
//普通函数:首字母小写,调用时直接调用,函数内部this指向window
function dog(){}; dog(); //普通函数
//构造函数的特点:首字母大写,调用时需要用new来调用,内部的this指向实例化的对象
function Dog(){};
new Dog(); //构造函数
//构造函数就是一个类
function People(name, age){
// console.log(this);//{}
this.name = name;
this.age = age;
console.log(this);//构造函数内部的this指向实例化对象obj
}
// 根据Dog这个类产生一个具体的对象
var obj = new People("天音",18) ;//new People()调用People函数
console.log(obj);
//上面几行代码会打印出两行一模一样的,就说明obj和this相等
4. class创建对象
class Dog {
constructor(name, age) {
console.log(this);
this.name = name;
this.age = age;
console.log(this); //{name: age:}
}
sleep() { console.log('狗爱睡觉') } //注意:方法和方法之间没有逗号 方法需要通过对象来调用
eat() { }
}
// 由类产生对象
var d = new Dog("花花", 2); //d就是this
d.sleep();