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. 初入网络系列笔记(1)TCP/IP基础

    一.借鉴说明,本博文借鉴以下博文 1.BlueTzar,TCP/IP四层模型, http://www.cnblogs.com/BlueTzar/articles/811160.html 2.叶剑峰,漫 ...

  2. luogg_java学习_07_抽象类_接口_多态学习总结

    这篇博客总结了半天,希望自己以后返回来看的时候理解更深刻,也希望可以起到帮助初学者的作用. 转载请注明 出自 : luogg的博客园 , 抽象 一种专门用来做父类,被继承的. (模板) 格式: abs ...

  3. Server Tomcat v7.0 Server at localhost was unable to&amp;nbs 报错问题解决

    在eclipse启动tomcat时遇到超时45秒的问题: Server Tomcat v7.0 Server at localhost was unable to start within 45 se ...

  4. Lind.DDD.ConfigConstants统一管理系统配置

    回到目录 Lind.DDD.ConfigConstants属于新添加的组件,用来帮助我们安全的进行配置消息的管理,我们在开发项目时,有个感觉,你的config配置项会越来越多,越来越难以阅读,随着你引 ...

  5. IE8,IE10下载的临时文件到哪里去了???

    操作攻略: 打开IE浏览器=>工具=>Internet选项=>常规选项卡中,找到"浏览历史记录"=>设置,然后就可看到"当前位置"所列出 ...

  6. iOS 多线程GCD简介

    一.简介 1.1 GCD (Grand Central Dispatch )是Apple开发的一个多核编程的解决方法. Grand 含义是“伟大的.宏大的”,Central含义“中央的”,Dispat ...

  7. Alvin

    Alvin Zhao 東京都 港区虎ノ門2-10-4 ホテルオークラ東京 M 663 電話番号: 0335820111

  8. Git常用命令总结

    Git常用命令总结 git init      在本地新建一个repo,进入一个项目目录,执行git init,会初始化一个repo,并在当前文件夹下创建一个.git文件夹.   git clone ...

  9. php new self()和new static()

    class A { public static function get_self() { return new self(); } public static function get_static ...

  10. 报文格式:xml 、定长报文、变长报文

    目前接触到的报文格式有三种:xml .定长报文.变长报文 . 此处只做简单介绍,日后应该会深入学习到三者之间如何解析,再继续更新.——2016.9.23 XML XML 被设计用来传输和存储数据. H ...