JavaScript是基于对象的解释性语言,全部数据都是对象。在 JavaScript 中并没有 class 的概念,但是可以通过对象和类的模拟来实现面向对象编程。

1.对象

在JavaScript中,对象被定义为无序属性的集合,属性可以是任何类型的值,包括其他对象或函数。函数作为属性值时称为“方法”,即对象的行为。

(1)对象常用的内部属性

对象的内部属性是由JavaScript 规范定义的,由运行代码的系统来访问。对象常用的内部属性:

  • prototype        对象        获得对象原型,用来实现继承功能

  • class                字符串     描述对象类型的字符串,使用 typeof 操作符返回的结果

  • get                  函数         获取指定属性名称的属性值

  • put                  函数         为指定的属性赋值

  • canPut            函数         指定属性是否可以通过 put 赋值

  • hasProperty    函数         是否有指定的属性

  • delete             函数         删除对象指定的属性

  • defaultValue   函数         返回对象的默认值

  • construct        函数         对象的构造函数

  • call                  函数        执行关联在对象上的代码(通过函数名调用)

prototype 属性可以为对象添加方法;

拥有 construct 属性的对象可以通过 new 操作符来调用,此时该对象可以被理解为类;

拥有call 属性的对象可以通过函数名称来调用,

JavaScript中一切皆对象,所有的函数(对象)都拥有此属性

2.对象的创建、访问和释放

(1)创建对象

在JavaScript中,使用 new 关键字调用构造函数来创建对象。

var 对象名 = new  构造函数();

(2)对象的属性

对象的属性都通过 “.”运算符访问。

如果访问值是 null对象的属性,将出现空引用错误。与普通变量函数相同,对象的属性可以动态生成。将某个属性值设置为null表示删除该属性。

在函数内部的对象,函数执行完毕后将自动释放所占用的资源;

在函数外部定义的对象,将其值设置为null后,垃圾收集器将释放其占用的资源。

3.常用内置对象

常用的内置对象包括Global,Object,Function,Array,String,Date,RegExp,Math,Error等等。

(1)Global对象: js中顶级对象,一切声明的变量和函数都是它的属性。

特性:

1. 没有 construct 属性,所以无法使用 new 操作符构造。

2. 没有 call 属性,所以无法调用

3. 只是表示全局对象的概念,依据宿主不同而不同,例如,在浏览器中,window对象即为Global对象。

(2)Object对象:所有对象的基础,其他所有对象都从Object 对象扩展而来,这一切都通过原型实现。原型是对象的一个属性,即 prototype。prototype 本身是一个对象,每个对象都具有此属性。JS中每个对象本身都不包含具体的属性(但可以动态添加),而是通过原型进行属性的共享。当获取一个对象的属性时,系统首先检测对象是否直接包含该属性,如果不包含则从原型属性中查找;如果扔为找到则返回 undefined。

所有对象都派生自 Object,所以使用原型为 Object对象扩展属性时,所有对象都具有该属性。

(3)Function 对象: 函数也是对象(js中一切皆对象),所以当使用function关键字定义函数时,实际上是在系统内部创建了一个Function对象。

具体使用参见:JavaScript 基础回顾——函数

(4)Error对象: 内置的Error对象可以在发生错误时作为参数传递给catch子句,也可以使用 new 关键字构造自定义的Error对象。

<script type="text/javascript">

try{

var err=new Error("代码里 自定义错误");//自定义错误对象

}catch(e){

alert(e.message);

}

</script>

来源:代码里

链接:http://www.daimali.com/index.php/2016/04/28/342/

JavaScript 基础回顾——对象的更多相关文章

  1. Javascript基础回顾 之(三) 面向对象

    本来是要继续由浅入深表达式系列最后一篇的,但是最近团队突然就忙起来了,从来没有过的忙!不过喜欢表达式的朋友请放心,已经在写了:) 在工作当中发现大家对Javascript的一些基本原理普遍存在这里或者 ...

  2. Javascript基础回顾 之(二) 作用域

    本来是要继续由浅入深表达式系列最后一篇的,但是最近团队突然就忙起来了,从来没有过的忙!不过喜欢表达式的朋友请放心,已经在写了:) 在工作当中发现大家对Javascript的一些基本原理普遍存在这里或者 ...

  3. Javascript基础回顾 之(一) 类型

    本来是要继续由浅入深表达式系列最后一篇的,但是最近团队突然就忙起来了,从来没有过的忙!不过喜欢表达式的朋友请放心,已经在写了:) 在工作当中发现大家对Javascript的一些基本原理普遍存在这里或者 ...

  4. JavaScript基础回顾一(类型、值和变量)

    请看代码并思考输出结果 var scope = 'global'; function f(){ console.log(scope); var scope = 'local'; console.log ...

  5. javascript基础(六)对象

    原文http://pij.robinqu.me/ JavaScript Objects 创建对象 对象直接量 var o = { foo : "bar" } 构造函数 var o ...

  6. 原生 javascript 基础回顾

    (1)打开新窗口 语法: window.open([URL], [窗口名称], [参数字符串]) 参数说明: URL:可选参数,在窗口中要显示网页的网址或路径.如果省略这个参数,或者它的值是空 字符串 ...

  7. JavaScript基础回顾知识点记录6-操作元素样式和事件对象(介绍基本使用)

    js 中 操作元素样式 通过js修改元素内联样式(设置和读取的都是内联样式) 获取当前元素显示的样式 <html> <head> <meta charset=" ...

  8. JavaScript基础--DOM对象(十三):(windows对象:history\location\navigator\screen\event)

    DOM编程1.为什么要学习DOM(1) 通过dom编程,我们可以写出各种网页游戏(2)dom编程也是ajax的重要基础2.DOM编程介绍DOM = Document Object Model(文档对象 ...

  9. JavaScript 基础回顾——数组

    JavaScript是无类型语言,数组元素可以具有任意的数据类型,同一个数组的不同元素可以具有不同类型.数组的元素设置可以包含其他数组,便于模拟创建多维数组. 1.创建数组 在JavaScript中, ...

随机推荐

  1. Devexpress TextAnnotation

    private void BindData() { chartControl1.AnnotationRepository.Clear(); chartControl1.Series.Clear(); ...

  2. HTML+CSS代码橙色导航菜单

    效果预览:http://hovertree.com/code/texiao/ks63r6aq.htm <!DOCTYPE html> <html xmlns="http:/ ...

  3. Hibernate 更新部分字段的实现

    在Hibernate 中,有时我们只需要更新部分字段,此时如果使用update()方法,会将所有字段都更新,对于没有set的字段,就会设置成NULL,如果这些字段里面有非空的字段就会报错. 解决的方法 ...

  4. MyBatis的mapper

    在前面的学习中,我们还在写一些接口啊,实现类啊,是不是感觉好low的... 其实,我们是可以不用写接口的实现类的,今天就带着大家一起学习一下,当然,我是回顾的. 看下面的结构,是不是没实现类呢! 源码 ...

  5. java泛型详解

    http://www.cnblogs.com/lwbqqyumidi/p/3837629.html

  6. MySQL 5.7:非结构化数据存储的新选择

    本文转载自:http://www.innomysql.net/article/23959.html (只作转载, 不代表本站和博主同意文中观点或证实文中信息) 工作10余年,没有一个版本能像MySQL ...

  7. 手把手教你用Python抓取AWS的日志(CloudTrail)数据

    数据时代,利用数据做决策是大数据的核心价值. 本文手把手,教你使用python进行AWS的CloudTrail配置,进行日志抓取.进行数据分析,发现数据价值! 如今是云的时代,许多公司都把自己的IT架 ...

  8. .Net Core WebAPI 基于Task的同步&异步编程快速入门

    .Net Core WebAPI 基于Task的同步&异步编程快速入门 Task.Result async & await 总结 并行任务(Task)以及基于Task的异步编程(asy ...

  9. 接入统计Crash的工具Crashlytics-ios

    1. 注册账户 登录网站 https://get.fabric.io/ 来注册新的账户 2. account confirmed之后就出现相应的设置页面,设置你的team的名称 3. 出现页面提示下载 ...

  10. JS高程3.基本概念(6)函数

    1.ECMAScript中的函数使用function关键字来声明. eg: function sum (num1,num2){ alert(num1+num2); } sum(3,7); 注意: 在有 ...