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中, ...
随机推荐
- 【吐槽】gist.github.com疑遭中间人攻击
北京时间201510081004,云南电信用户,现在上https://gist.github.com/,用IE10会提示证书被伪造,用搜狗4.1.3.9668会跳转到[http://www.cjb.n ...
- WCF入门教程(三)定义服务协定--属性标签
WCF入门教程(三)定义服务协定--属性标签 属性标签,成为定义协议的主要方式.先将最简单的标签进行简单介绍,以了解他们的功能以及使用规则. 服务协定标识,标识哪些接口是服务协定,哪些操作时服务协定的 ...
- webapi filter过滤器中获得请求的方法详情(方法名,Attributes)
public class GlobalActionFilter : ActionFilterAttribute { private string _requestId; public override ...
- yii的入口文件index.php中为什么会有这两句
yii的应用模板中,index.php中 前面会有这两句 <?php // comment out the following two lines when deployed to produc ...
- c++函数模板作为类的成员函数,编译报错LNK2019的解决方法
为了使某个类的成员函数能对不同的参数进行相同的处理,需要用到函数模板,即template<typename T> void Function(). 编译时报错LNK2019 解决方法: 1 ...
- hibernate(1) —— 入门
hibernate框架主要是实现数据库与实体类间的映射,使的操作实体类相当与操作hibernate框架. 只要实体类写好配置文件配好,就能实现和数据库的映射,其中实体类对应表,类的属性对应数据库的表字 ...
- iOS之加密的三种方法
//需要导入 #import <CommonCrypto/CommonCryptor.h> ==============MD5加密============ NSString *str ...
- 【代码笔记】iOS-圆角矩形
代码: - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. se ...
- 使用VS2015开发跨平台APP
VS2013开始就可以基于HTML5开发WEBAPP,并借助xamarin或者PHONEGAP实现原生APP 不过升级麻烦,直接下载VS2015CTP6,最好安装在同一个分区上,ANDROID S ...
- [Java编程思想-学习笔记]第4章 控制执行流程
4.1 return 关键字return有两方面的用途:一方面指定一个方法结束时返回一个值:一方面强行在return位置结束整个方法,如下所示: char test(int score) { if ...