JavaScript之面向对象的编程思想

对象

具有独特特征的属性和方法的集合,万事万物都是对象
面向对象的思想就是把一切都当成对象
面向过程关注的实现功能的步骤,是如何把功能拆解后一步步的实现
面向对象则是关注的实现功能的一系列的对象
(1)对象就是一个单独事物的抽象

eg:
	person
	car

通过对现实事物的抽象成对象
(2)对象是一个容器,封装了属性和方法,所以也可认为对象是属性和方法的无序集合
开发中,对象是抽象的 数据集,功能集

JS中变量是数据值的容器,var person=‘张三’,将单一值’张三’赋给变量person
对象也是变量,但是对象包含很多值 例:如下代码块
JS并不是完全的面向对象的编程语言,JS是基于原型的面向对象语言,没有class(类)(在ES6前,JS并没有class(类)的概念),产生对象的方式也与其他OO语言有所不同,采用原型的方式来构造对象

那么,JS时如何创建对象的:
实际上,JS 是通过一种叫做原型(prototype)的方式来实现面向对象编程的
对象(object)是依靠 构造器(constructor)利用 原型(prototype)构造出来的

JS中的对象是键值对的集合 key:value,key:value,…
键值对被称为属性,对象也可以有方法,方法是在对象上执行的动作,方法以函数定义存储在属性中 (方法是作为属性来存储的函数)

var person={
	name:'张三',
	age:21,
	introduce:function(){
		return '我叫'+this.name+',今年'+this.age+'岁';
	}
}

在函数定义中,this指向该函数的"owner",
在上面的例子中,this指向的是拥有introduce函数的person对象,也可以说this指的是拥有name属性的this(即person)对象

JS中经典的模拟对象的方式:

var Person=new Object();
Person.name='张三';
// 亦或是如下:
var Person={
	name:'张三'
}

构造函数方式创建对象
在JavaScript中,构造函数是给对象添加属性,初始化属性用的

function Person(){
	this.name='张三';
}
var person_01=new Person();

person_01便是通过我们自己所写的构造函数所创建的对象(实例)
new Person() 的过程叫做实例化
在构造函数调用开始的时候,有一个赋值操作,也就是让this = 刚创建出来的对象
在构造函数中,this就代表刚创建出来的对象(例中person_01)

两种方式的比较

使用new关键字创建的对象,对象的类型就是创建这个对象使用的构造函数的函数名
使用{}创建对象,对象的类型一定是Object,因为相当于使用了new Object()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值