引用类型

引用类的值(对象)是引用类型的一个实例。在ECMAScript中,引用类型是一种数据结构,用于将数据和功能组织在一起。

对象是某个特定引用类型的实例。新对象是使用new操作符后跟一个构造函数来创建的。构造函数本身就是一个函数,只不过该函数是出于创建新对象的目的而定义的。

var person=new Object();

这行代码创建了Object引用类型的一个新实例,然后把该实例保存在了变量person中。使用的构造函数是Object,它只为新对象定义了默认的属性和方法。ECMAScript提供了很多原生引用类型。

Object类型

创建Object实例的方式:

第一种,使用new操作符后跟Object构造函数,如下

var person=new Object();
person.name="breeze";
person.age="20";

另一种方式是使用对象字面量表示法。对象字面量是对象定义的一种简写形式

var person={
name:"breeze",
age:20
}

对象字面量是对象定义的一种简写形式,目的在于简化创建包含大量属性的对象的过程。

在使用对象字面量语法时,属性名也可以使用字符串,如下

var person={
"name":"breeze",
"age":20
}

这个例子创建了一个对象,包含两个属性:name和age,但这里的数值属性名会自动转换成字符串,另外,使用对象字面量语法的时候,也可以留花括号然后自定义属性和方法,例如

var person={};
person.name="breeze";
person.age=20;

注意点:对象字面量语法,更推荐在只考虑对象属性名的可读性时使用

实例

虽然可以使用前面任何一种方法来定义对象,但是对象字面量也是向函数传递大量参数的首选方式,例如

    function dispalyInfo(args){
var output="";
if(typeof args.name == "string"){
output += "name:"+args.name+'\n'
}
if(typeof args.age =="number"){
output += "age:"+args.age+'\n'
}
alert(output)
} dispalyInfo({
name:"breeze",
age:20
}) //name:breeze
//age:20

在这个例子中,函数displayInfo( )接收一个名为args的参数,这个参数可能带有名为name和age的属性,也可能啥也没有,在这个函数内部,我们通过typeof操作符来检测每个属性是否存在,然后基于相应的属性来构建出要显示的信息。我们调用这个函数时,所使用的时对象字面量语法来指定不同的数据。

注:这种传参模式最适合需要向函数传入大量可选参数的情形。

对象属性

一般来说,访问对象属性都是用的点表示法,不过也可以使用方括号来访问对象的属性。在使用方括号语法时,应该将要访问的属性以字符串的形式放在方括号中,例子如下

alert(person.name)
alert(person["name"])

从功能上,两种方法没有区别,但方括号语法的主要优点是可以通过变量来访问属性,例如

var person={
"name":"breeze",
"age":20
}
var propertyName="name";
alert(person[propertyName]); //"breeze"

最新文章

  1. mybatis笔记1 基本的配置和操作
  2. 使用python的logging模块
  3. CMDLINE的解析
  4. MVC项目,系统找不到指定的文件。(异常来自 HRESULT:0x80070002)
  5. 2016-XCTF Final-Richman
  6. grep, egrep, fgrep笔记
  7. Hibernate 多表关联映射- 一对多关系映射(one-to-many)
  8. duilib开源界面库
  9. [Hadoop] - SSH免密码登录
  10. init.ora, pfile, spfile
  11. 通过 python的 __call__ 函数与元类 实现单例模式
  12. 工作中MySql的了解到的小技巧
  13. Linux 高性能服务器编程——高性能服务器程序框架
  14. ArrayAdapter构造方法中的textViewResourseId
  15. ubuntu下好用的音乐播放器audacious
  16. Linux中安装python3
  17. libgdx学习记录8——对话框Dialog
  18. 如何高效使用Google
  19. SQL更改表架构
  20. 利用TortoiseGit从Github上下载代码

热门文章

  1. Qt 如何使窗体初始最大化
  2. Selenium 如何复用浏览器【解决扫码登录等问题】
  3. Rakefile
  4. 面试【JAVA基础】Web与网络
  5. 在GitLab pages上快速搭建Jekyll博客
  6. Mysql数据库扩展
  7. HKDAS产品技术架构图
  8. Kubernetes-5:搭建企业级私有仓库Harbor
  9. WIN10自动修复失败无限循环
  10. linux下清空文件内容的3个命令