继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

JavaScript面向对象相关知识(1)

熠熠生阳
关注TA
已关注
手记 67
粉丝 76
获赞 1245
面向对象 概念

1.面向对象就是使用对象。
2.面向过程就是用过程的方式进行开发。

面向对象三大特性

抽象性
封装性
继承性

类class:在JS中就是构造函数

一、在传统的面向对象语言中,使用一个叫类的东西定义模板,然后使用模板创建对象。
二、在构造方法中也具有类似的功能,因此也称其为类

实例(instance)与对象(object)

一、实例一般是指某一个构造函数创建出来的对象,我们称为XXXX 构造函数的实例
二、实例就是对象。对象是一个泛称
三、实例与对象是一个近义词

键值对与属性和方法

一、在JS中键值对的集合称为对象
二、如果值为数据(非函数),就称该键值对为属性
三、如果值为函数(方法),就称该键值对为方法method

父类与子类(基类和派生类)

1.传统的面向对象语言中使用类来实现继承那么就有父类、子类的概念
2.父类又称为基类,子类又称为派生类
3.在JS中没有类的概念,在JS中常常称为父对象,子对象,基对象,派生对象。

构造函数

构造函数是干什么用的
1.初始化数据的
2.在JS中给对象添加属性用的,初始化属性值用的

创建对象的过程
1.代码:var o = new Object();
2.首先运算符new创建了一个对象,类似于{},是一个没有任何(自定义)成员的对象。
3.然后调用构造函数,为其初始化成员
4.在构造函数中 利用 对象的动态特性 为其对象添加成员。

作用域

什么是作用域
域表示的就是范围,即作用域,就是一个名字在什么地方可以使用,什么时候不能使用。
JS中词法作用域的规则
1.函数允许访问函数外部的数据
2.整个代码结构中只有函数可以限定作用域
3.作用规则首先使用提升规则分析
4.如果当前作用域中有了名字了,就不考虑外面的名字

**

闭包

**

什么是闭包?
闭包的含义就是闭合,包起来,简单的来说,就是一个具有封闭功能与包裹功能的结构。所谓的闭包就是一个具有封闭的对外不公开的,包裹结构,或空间。
为什么函数可以构成闭包?
闭包就是一个具有封闭与包裹功能的结构,是为了实现具有私有访问空间的函数的。函数可以构成闭包。函数内部定义的数据函数外部无法访问,即函数具有封闭性;函数可以封装代码即具有包裹性,所以函数可以构成闭包。

闭包有什么用
闭包不允许外部访问,要解决的问题就是让外部间接访问函数内部的数据。事实上,通过使用闭包,我们可以做很多事情。比如模拟面向对象的代码风格;更优雅,更简洁的表达出代码;在某些方面提升代码的执行效率。

利用闭包可以实现如下需求:

1.匿名自执行函数
一个匿名的函数,并立即执行它,由于外部无法引用它内部的变量,因此在执行完后很快就会被释放,关键是这种机制不会污染全局对象。
2.缓存
闭包正是可以做到这一点,因为它不会释放外部的引用,从而函数内部的值可以得以保留。
3.实现封装
4.模拟面向对象的代码风格

闭包的基本模型
1.对象模式
函数内部定义个一个对象,对象中绑定多个函数(方法),返回对象,利用对象的方法访问函数内的数据
2.函数模式
函数内部定义一个新函数,返回新函数,用新函数获得函数内的数据
3.沙箱模式
沙箱模式就是一个自调用函数,代码写到函数中一样会执行,但是不会与外界有任何的影响

闭包的性能问题
函数执行需要内存,那么函数中定义的变量,会在函数执行结束后自动回收,凡是因为闭包结构的,被引出的数据,如果还有变量引用这些数据的话,那么这些数据就不会被回收。因此在使用闭包的时候如果不使用某些数据了,一定要赋值一个null

var f = (function () {
    var num = 123;
    return function () {
        return num;
    };})();
f = null;
打开App,阅读手记
2人推荐
发表评论
随时随地看视频慕课网APP