从编程思想角度理解:
面向过程的编程思想,关注与解决问题的步骤。
面向对象的编程思想,关注的是解决问题所需要的对象。
面向对象的编程思想继承子面向过程。
从编程语言的角度理解:
面向对象的编程语言,必须有“类”和“对象”这两个概念。并且对象是经由类创建出来的;还需要有封装、继承、多态三个特征(如:java语言)。
js语言不符合以上条件,但是有“对象”的概念,所以他是一门基于对象的编程语言。
js和面向对象的关系:利用面向对象的编程思想来指导js代码的书写方式。
创建对象常用的方法:
1、字面量创建对象:
var per = {
name: "xiaowang",
age: 23,
sayHi: function () {
alert("hello");
}
};
访问对象的属性的方法:
a、对象名+'.'+属性名
b、对象名+[]+属性名字符串
*注意:在中括号里访问要以字符串形式访问!
2、工厂方法创建对象:
//工厂模式:通过调用工厂,给工厂传递参数,则该工厂就能批量生产对应的产品
//定义创建对象的工厂
function creatPerson(name,age){
//1.创建空对象
var per = {};
//2.改空对象添加属性和方法
per.name = name;
per.age = age;
//3.把创建的对象返回出去
per.sayHi = function(){
alert(name + "hello")
}
return per;
}
//调用方法
var per1 = createPerson('xiaowang',23);
console.log(per1);
var per2 = createPerson('xiaoxuan',18);
console.log(per2);
per1.sayHi;
3、构造函数创建对象:
//函数名首字母大写
function CreatePreson(name,age){
//把所有的属性和方法挂载在this指针上。将来this指向谁,这些属性和方法就添加在谁身上。
this.name = name;
this.age = age;
this.sayHi = function(){
alert(this.name + 'hello');
};
}
//构造构造函数创建对象
// new + 构造函数
//通过new关键字调用的函数,new会先在内存中开辟一块存储空间,然后把构造函数中的this指针指向这块空间,这样,给this指针绑定的属性、方法,也就添加进了这块储存空间中。最后把储存空间的地址给per对象保存。
//通过构造函数创建出来的对象可以借助相关方法获取判断归属关系。用instanceof
var per = new
CreatePreson('xiaoxuan',18);
per.sayHi();