一.概述部分:
1.面向对象时一种思想,不是什么高深的道理,也不是什么特殊的代码,是一种针对于封装思想的总结。主要是为了解决代码重复问题而产生的。例如:函数
2.(1)某个具体的内容称为对象
(2)类是抽象的概念,我们自己定义一个概念,类是没有任何意义的
对象:由类所产生的具体的某个实例
都是通过代码先去想象要实现的功能->创建类的过程
二.面向对象的创建方法
1.面向对象的第一种创建方式:
var obj=new Object();//创建一个具体的实例:obj;模板是Object
//添加属于自己的属性
obj.sex="女";
//给对象添加属性的方法:对象.属性名=值;
注意点:(1)某个对象属性是一个变量,只不过这个变量是属于这个对象的,想要使用这个变量必须经过对象的同意
(2)一个对象的属性名不能重复
2.面向对象的第二种创建方式
var obj={};//创建一个具体的实例:obj;
//添加属性的方式
obj.swx="123";
// 或者创建的同时也可以添加属性,例如:
var obj_1={
sdf:"sdsd",
sahdhads:"hds",//多个属性之间以逗号隔开
}
3.面向对象创建的第三种方式–重点
(1)工厂模式:函数模式创建方式
例如:
function factory(name_1){
var obj={name:name_1};
return obj;
}
var obj_1=factory("张三");
console.log(obj_1.name);
(2) 构造函数–创建对象
–为了区分构造函数和普通函数,一般将构造函数的函数名的首字母大写
//方法实例:
function People(names,age){
this.namess=names;
this.age=age;
console.log(this);
}
//new:开辟一块新的空间
//下面的操作是开辟了一块空间或者说新建了一个对象p,由p来调用函数,所以打印输出时不是window而是调用它的p
var p=new People("张三",19);
console.log(p);
知识回顾:this的概念
(1)在函数中调用函数,函数内的this就是谁
(2)在JS中全局定义的所有变量默认都是添加为window的属性,所有全局变量都是window的属性,包括函数:
例如:function test(){console.log(this);} test();