美文网首页程序员
JavaScript之对象

JavaScript之对象

作者: 阿甘笔记 | 来源:发表于2016-05-26 14:54 被阅读81次

什么是面向对象:

ECMAScript 有两种开发模式:1.函数式(过程化),2.面向对象(OOP)。面向对象的语言有一个标志,那就是类的概念,而通过类可以创建任意多个具有相同属性和方法的对象。 但是,ECMAScript 没有类的概念,因此它的对象也与基于类的语言中的对象有所不同。

面向对象编程(OOP)的特点:

    封装:不考虑内部实现,只考虑功能使用

    继承:从已有对象上,继承出新的对象

    多态:同一个函数调用会有不同的执行效果

对象的组成

    方法——函数:过程、动态的

    属性——变量:状态、静态的

为对象添加方法和属性:

   创建对象:var obj=new Object();

   添加属性:obj.name=‘abc’;

   添加方法:obj.show=function(){alert(this.name)}

注 :不能在系统对象中随意附加方法、属性,否则会覆盖已有方法、属性

构造函数:

构造函数与其他函数的唯一区别在于调用它们的方式,任何函数,只要通过new操作符来调用,就可作为构造函数;而任何函数,若不通过new操作符调用,就是普通函数。

什么是原型:

    原型可以让所有对象实例共享它所包含的属性和方法

为Array添加sum方法:

     给对象添加方法,类似于行间样式

     给原型添加方法,类似于class

原型的小缺陷:

    无法限制覆盖

用混合方式构造对象:

    混合的的构造函数/原型方式

    Mixed Constructor Function/Prototype Method

原则:

    构造函数:加属性

    原型:加方法

对象命名规范:

    类名首字母大写

构造函数伪装     call()方法:

定义:应用某一对象的一个方法,用另一个对象替换当前对象。

语法: Function.call(obj,arg1,arg2,…)方法能接收多个参数

    obj:这个对象将代替Function类里this对象

    arg:这个是参数,它将作为参数传给Function

如果没有提供 arg和 obj任何一个参数,那么 Global 对象将被用作 thisObj, 并且无法被传递任何参数。

构造函数伪装  apply()

定义:应用某一对象的一个方法,用另一个对象替换当前对象。

语法: Function.apply(obj,args)方法能接收两个参数

    obj:这个对象将代替Function类里this对象

    args:这个是数组,它将作为参数传给Function(args-->arguments)

如果没有提供 args 和 obj任何一个参数,那么 Global 对象将被用作 thisObj, 并且无法被传递任何参数。

ECMAScript只支持实现继承,且其实现继承主要依靠原型链来实现

原型链:

原型链的基本思想是利用原型让一个引用类型继承另一个引用类型的属性和方法

instanceof操作符:

是一个运算符,运算中需要两个操作数,运算的结果是true或false,表示此值是不是某一个类的示例,能得到一个值的具体类型。

什么是闭包?

函数 嵌套函数,内部函数可以引用外部函数的参数和变量,参数和变量不会被垃圾回收机制所收回

闭包有什么好处?应用在那里?

好处:

1.希望一个变量长期驻扎在内存当中

2.避免全局变量的污染

3.私有成员的存在

应用:

1.模块化代码

2.在循环中直接找到对应元素的索引

闭包需要注意得地方?     

 IE下会引发内存泄漏

本地对象(非静态对象):

    常用对象

          Object、Function、Array、String、Boolean、Number、Date、RegExp、Error

内置对象(静态对象):

           Global、Math

宿主对象(由浏览器提供的对象):

    DOM、BOM

相关文章

  • JavaScript ☞ day2

    JavaScript基础学习笔记之JavaScript提升 了解时间 Date Date对象的方法 Date对象间...

  • Javascript之对象

    对象 注意,最后一个键值对不需要在末尾加,,如果加了,有的浏览器(如低版本的IE)将报错。 访问属性是通过.操作符...

  • JavaScript之对象

    JavaScript中的对象和OC中的字典 Dictionary是一样的,一组“键值对”(key-value)的集...

  • JavaScript之对象

    在ES6出现之前,JavaScript不能真正被称为 面向对象的编程语言,因为 class 仅仅作为其保留字而非关...

  • JavaScript之对象

    什么是面向对象: ECMAScript 有两种开发模式:1.函数式(过程化),2.面向对象(OOP)。面向对象的语...

  • JavaScript之对象

    什么是对象呢(object) 对象是一个包含相关数据和方法的集合(通常由一些变量和函数组成,我们称之为对象里面的属...

  • Javascript之对象

    本文仅粗略罗列一下对象的基础知识,做个小小总结,不涉及原理。 目录: 对象创建的三种方法 对象访问的两种方法 对象...

  • 原型和原型链

    如何理解javascript的原型 每一个javascript对象在创建时就会与之关联另一个对象,之歌对象就是我们...

  • JavaScript内置对象之对象

    建议学习时长: 60分钟学习方式:深入 学习目标 知道什么是对象 知道如何获取和设置对象的值 详细介绍 对象是一种...

  • 面向对象与原型(三)

    原型 每个 JavaScript 对象都有一个与之相关联的另一个 JavaScript 对象(或null,但这是罕...

网友评论

    本文标题:JavaScript之对象

    本文链接:https://www.haomeiwen.com/subject/sckxdttx.html