JS_高程5.引用类型(1)Object类型
引用类型
在ECMASCript中,引用类型是一种数据结构,将数据和功能组织在一起,引用类型有时候也被称为对象定义,因为它们描述的是一类对象所具有的属性和方法。(注意:尽管ECMAScript从技术上讲是一门面向对象的语言,但是它不具备传统面向对象语言所支持的类和接口等基本结构。)
1.Obiect类型
创建Object类型的两种方式:
(1)使用new操作符后跟Objec构造函数
var person=new Object();
person.name="Linshuling";
person.age=;
(2)使用对象字面量表示法(简写形式,简化创建包含大量属性的对象的过程。)
var person={
name:"Linshuling",
age:19
};
alert(person.name);
注意:
在对象字面量中,使用逗号来分隔不同的属性,因此“Linshuling”后面是一个逗号,但是在age属性的值19后面不能加逗号,因为age是这个对象的最后一个属性。在最后一个属性后面添加逗号,会在IE7及更早的版本和Opera中导致错误。
使用对象字面量语法时,属性名也可以使用字符串。
eg:
var person={
"name" :"Linshuling",
"age" :19,
5:true
};
注意:这里的数值属性名会自动转换为字符串。
另外,使用对象字面量语法时,如果留空其花括号,则可以定义只包含默认属性和方法的对象。
eg:
var person={}; //与new Object()相同
person.name="Linshuling";
person.age=19;
alert(person.age);
注意:
在通过对象字面量定义对象时,实际上是不会调用Object构造函数(Firefox2及更早版本会调用;但是Firefox3之后就不会了)。实际上,开发人员更倾向对象字面语法,因为这种语法要求的代码量少,而且能够给人封装数据的感觉。
对象字面量也是向函数传递大量可选参数的首选方式。
eg:
function displayInfo(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);
}
displayInfo({
name:"Linshuling",
age:29
});
displayInfo({
name:"lin"
});


这种传递参数得模式最适合需要向函数传入大量可选参数的情形。
2.访问对象的方法
(1)点表示法
(2)方括号表示法
eg:
var person=new Object();
person.name="Linshuling";
person.age=19;
alert(person.name);
alert(person["age"]);
注意:
alert(person["age"]);属性名称age要加“”,不然会出现错误。 方括号的优点:
(1)可以通过变量来访问属性
eg:
var n="name";
alert(person[n]);
(2)如果属性名中包含导致语法错误的字符,或者属性名使用的是关键字或是保留字,也可以使用方括号表示法。
person["first name"]="Linshuling";
由于first name 中包含一个空格,所以不能使用点表示法来访问它。
注意:除非使用变量来访问属性,否则建议使用点表示法。
JS_高程5.引用类型(1)Object类型的更多相关文章
- JavaScript引用类型之Object类型
在JavaScript中大多数的引用类型都是Object的实例,Object类型也是使用最多的类型! 创建Object类型实例的方式有两种,下面分别来分析一下: (1)第一种是使用new操作符后跟Ob ...
- JavaScript之引用类型(Object类型)
ECMAScript提供了很多原生的引用类型,以便开发人员进行常见的计算任务. 对象是某一个特定引用类型的的实例. Object类型 用的最多.虽然这个Object实例不具备多少功能,但是在应用程序的 ...
- 引用类型之object类型
object类型有两种创建方法,第一种是直接创建法: var person=new Object(); person.name = "Nicholas"; person.age = ...
- JS_高程5.引用类型(4)Array类型的各类方法
一.转换方法 所有的对象都具有toLocaleString(),toString()和valueOf()方法.调用toString()方法会返回由数组中的每个值的字符串拼接而成的一个以逗号分隔的字符串 ...
- JS_高程5.引用类型(3)Array类型-检测数组
1. instanceof操作符(ECMAScript3) 对于一个网页,或者是一个全局作用域而言,使用instanceof操作符来检测数组就可以得到满意的结果. 语法:if(value instan ...
- JS_高程5.引用类型(2)Array类型
Array类型: ECMAScript数组的每一项可以保存任何类型的数据,数组的大小是可以动态调整的. 创建数组的基本方式: (1)使用Array构造函数 var color=new Array(); ...
- JS_高程5.引用类型(6)Array类型的位置方法,迭代方法,归并方法
一.位置方法 ECMAScript5为数组实例添加了两个位置:indexOf()和 lastIndexOf().这两个方法接收两个参数:要查找的项和(可选的)表示查找起点位置的索引(如在数组[7,8, ...
- JS_高程5.引用类型(5)Array类型的操作方法
一.操作方法 1.concat()方法 基于当前数组中的所有项创建一个新数组.具体说,是先创建当前数组的一个副本,然后将接收到的参数添加到这个副本的末尾,最后返回新构建的数组.在没有给concat() ...
- 【js高程学习笔记】Object类型
创建一组Object的实例的方式有两种: 方法一: var person = new Object(); person.name = '团子'; person.race = '猫'; person.s ...
随机推荐
- A - Exposition CodeForces - 6E
题目链接:https://vjudge.net/contest/202699#problem/A 题意 给一个n个元素的序列,从中挑出最长的子序列,要求子序列中元素差的最大值不超过k.问有几个最长子序 ...
- ip访问网站和localhost访问网站中top使用
对于相对定位,使用margin-top不用简单使用top. top在localhost中能正常显示,在ip访问时会出现多余空白. margin-top不管是localhost中还是ip中都能正常显示.
- 【转】android:paddingLeft与android:layout_marginLeft的区别
http://www.blogjava.net/anchor110/articles/342206.html 当按钮分别设置以上两个属性时,得到的效果是不一样的. android:paddingLef ...
- Flink的流处理--KeyBy
逻辑上将一个流分成不相交的分区,每个分区包含相同键的元素.在内部,这是通过散列分区来实现的 object Keyby { def main(args: Array[String]): Unit = { ...
- Zabbix监控Tomcat案例
今天在这里,我们来聊一聊JMX监控方式, JMX(java管理扩展程序)是java平台上为应用程序,设备,系统等植入管理功能的框架,JMX可以跨越一系列不同的系统平台,更加灵活的服务管理应用: 在za ...
- Promise-async-await处理函数
/*function request() { // 此处的request返回的是一个Promise return new Promise((resolve, reject) => { ajax( ...
- python---初始sqlite3
***sqllite不需要单独安装,python2.5以上自带的! ***官方中文文档:https://docs.python.org/2/library/sqlite3.html ***SQLite ...
- vue-cli@3.x之使用vue ui创建项目-来自一个战五渣的体验
1. 全局安装vue-cli yarn global add @vue/cli // 检查安装是否成功 vue -V // 3.2.2 2. 初始化 vue ui 执行命令 vue ui 2.1 该命 ...
- git 将主分支的提交合并到分支上(主分支同步到分支)
通常都会遇到将分支修改的内容合并到主分支中,但是在主分支中修改了内容怎么同步到分支上呢,这个时候需要将主分支上的提交操作在分支上再做一次: 1.首先在主分支上执行: git log 2.找到你想要同步 ...
- 使用 universalimageloader 缓存图片的配置类及使用方法
0.gradle 配置 dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) testCompile 'junit:juni ...