面向对象编程、this关键字、new命令

一、面向对象编程

面向对象与基于对象

面向对象
可以创建自定义的类型,自定义类
支持封装、继承、多态(三大特征)
面向对象的语言:Java、C#、C++等

基于对象
无法创建自定义的类型,但可模拟实现
不能很好的支持面向对象三大特征

什么是对象?

JavaScript中的对象是无序属性的集合:
属性可理解为键值对,键是属性名,值是对应的数据,所以也可认为对象是键值对的集合
值可细分为基本值、对象、函数
对象的属性和方法
属性:对象具有的特征,变量
方法:对象具有的行为 ,函数

创建对象

第一种:直接使用Object()

JS语言为我们提供了一个通用的创建对象的函数:Object(),该函数是一个构造函数,专门用于创建对象。

// 创建一个空的对象
var obj = new Object();

第二种:构造函数(模仿类的定义)

用来创建对象的函数,我们称之为构造函数(构造器)。

第三种:直接使用对象字面量

对象字面量的这种形式通常会在数据传输时使用,语法也极其简单。

// 创建一个空的对象
var obj = {}

第四种:JSON对象

JSON 格式(JavaScript Object Notation 的缩写)是一种用于数据交换的文本格式,2001年由 Douglas Crockford 提出,目的是取代繁琐笨重的 XML 格式。
JSON对象是JS语言中的原生对象,它的写法和对象字面的写法其为类似。

注意:JSON对象语法非常严格,要求主要有:
复合类型的值只能是数组或对象,不能是函数、正则表达式对象、日期对象。
原始类型的值只有四种:字符串、数值(必须以十进制表示)、布尔值和null(不能使用NaN, Infinity, -Infinityundefined)。
字符串必须使用双引号表示,不能使用单引号。
对象的键名必须放在双引号里面。
数组或对象最后一个成员的后面,不能加逗号。
两个函数
JSON.stringify():用于将一个值转为 JSON 字符串。该字符串符合 JSON 格式,并且可以被JSON.parse方法还原。 
JSON.parse():用于将 JSON 字符串转换成对应的值。
注意:因为JSON被发明的根本目的是用作数据传输的,所以JSON对象没有行为(方法)

二、this关键字

在对象中:this变视当前对象
在构造函数中:this表示将来被new出来的具体的某一个对象
在普通函数中:this表示函数的调用者

this指向
		1.普通函数,指向window
		2.箭头函数,指向定义的作用域的上下文
		3.事件回调函数,执行事件的触发者
		4.对象的方法中,指向当前对象。
		5.构造函数,指向将来要被创建的对象
		6.全局,是window

三、new命令

new命令的作用

new命令的作用,就是执行构造函数,返回一个实例对象。
其实,new命令不仅仅是可以执行构造函数,普通函数也可以,并且都会返回一个对象。
所以我们在使用构造函数创建对象的时候千万不要忘记使用new命令,如果忘记那么构造函数就会变成普通函数直接执行,而this此时指向的很可能就是window,注意可能会产生一些不可预知的错误。

new命令的原理

new命令的原理
1,创建一个空对象
2,将这个空对象的原型,指向构造函数的prototype
3,将这个对象赋值给构造函数内部的this关键字
4,开始执行构造函数内部的代码
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值