JavaScript 基础回顾——对象
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 基础回顾——对象的更多相关文章
- Javascript基础回顾 之(三) 面向对象
本来是要继续由浅入深表达式系列最后一篇的,但是最近团队突然就忙起来了,从来没有过的忙!不过喜欢表达式的朋友请放心,已经在写了:) 在工作当中发现大家对Javascript的一些基本原理普遍存在这里或者 ...
- Javascript基础回顾 之(二) 作用域
本来是要继续由浅入深表达式系列最后一篇的,但是最近团队突然就忙起来了,从来没有过的忙!不过喜欢表达式的朋友请放心,已经在写了:) 在工作当中发现大家对Javascript的一些基本原理普遍存在这里或者 ...
- Javascript基础回顾 之(一) 类型
本来是要继续由浅入深表达式系列最后一篇的,但是最近团队突然就忙起来了,从来没有过的忙!不过喜欢表达式的朋友请放心,已经在写了:) 在工作当中发现大家对Javascript的一些基本原理普遍存在这里或者 ...
- JavaScript基础回顾一(类型、值和变量)
请看代码并思考输出结果 var scope = 'global'; function f(){ console.log(scope); var scope = 'local'; console.log ...
- javascript基础(六)对象
原文http://pij.robinqu.me/ JavaScript Objects 创建对象 对象直接量 var o = { foo : "bar" } 构造函数 var o ...
- 原生 javascript 基础回顾
(1)打开新窗口 语法: window.open([URL], [窗口名称], [参数字符串]) 参数说明: URL:可选参数,在窗口中要显示网页的网址或路径.如果省略这个参数,或者它的值是空 字符串 ...
- JavaScript基础回顾知识点记录6-操作元素样式和事件对象(介绍基本使用)
js 中 操作元素样式 通过js修改元素内联样式(设置和读取的都是内联样式) 获取当前元素显示的样式 <html> <head> <meta charset=" ...
- JavaScript基础--DOM对象(十三):(windows对象:history\location\navigator\screen\event)
DOM编程1.为什么要学习DOM(1) 通过dom编程,我们可以写出各种网页游戏(2)dom编程也是ajax的重要基础2.DOM编程介绍DOM = Document Object Model(文档对象 ...
- JavaScript 基础回顾——数组
JavaScript是无类型语言,数组元素可以具有任意的数据类型,同一个数组的不同元素可以具有不同类型.数组的元素设置可以包含其他数组,便于模拟创建多维数组. 1.创建数组 在JavaScript中, ...
随机推荐
- form表单中enctype="multipart/form-data"的作用
在我们使用php导入和导出excel表格的时候经常会见到 enctype="multipart/form-data",哪他的作用是什么呢? ENCTYPE="multip ...
- nodejs:连接数据库SqlServer,mssql模块
现在的数据库越来越多,如mgdb,我比较常用的是mysql,但有一天做项目需要连接SqlServer,就去找了个方法.找了很多无非就mssql模块和node-sqlserver模块,但node-sql ...
- Linux下Redis的安装与配置
redis是当前比较热门的NOSQL系统之一,它是一个key-value存储系统.和Memcached类似,但很大程度补偿了 memcached的不足,它支持存储的value类型相对更多,包括stri ...
- 更新整理本人所有博文中提供的代码与工具(Java,2013.11)
为了更方便地管理博文中涉及的各种代码与工具资源,现在把这些资源迁移到 Google Code 中,有兴趣者可前往下载. Java 1.<高效 Java Web 应用开发框架 JessMA v3. ...
- 推荐一个内容滚动jquery插件
myslider是一个内容滚动jquery插件,版本0.1.2的每次滚动内容是一行内容,可以是文字,可以是一个链接,还可以是图片. 官方网址:http://keleyi.com/jq/myslider ...
- ASP.NET Mvc实用框架(一)Ioc、仓储模式和单元工作模式
Framework.EF 首先看一下这个类库: Extended文件夹存放的是EntityFramework.Extensions这个插件的源代码,没有别的原因,就是本人觉得这个插件挺好的,每次省的下 ...
- JAVA模板方法设计模式(从现实生活角度理解代码原理)
概述: 定义一个功能的框架(骨架),一部分功能是确定的,一部分功能是不确定的,先把确定的部分实现,把不确定的部分延迟到子类中实现. 实现该模式的关键步骤: 第一步:抽象类,实现模板方法,定义功能(确定 ...
- UIToolBar
//UIToolBar 是导航控制器默认隐藏的工具条 //设置UIToolBar的隐藏状态 self.navigationController.toolbarHidden = NO; //如何找到UI ...
- IOS开发之功能模块--输入框随着键盘的位置移动而移动
废话不多说,先直接上效果图: 先熟悉一下在Cocoa框架中会用到的key键: 然后直接上Demo的源码截图: 看代码之前,补充说一句,Demo中的文本框以及文本框的背后灰色的View是通过storyb ...
- databtables 设置(显示)行号
var table = $('#priceStrategtyTable').DataTable({ "rowCallback": function( row, da ...