【js与jquery】javascript中对象的理解
来源:互联网 发布:手机底部js广告 编辑:程序博客网 时间:2024/05/01 08:45
JavaScript的简单类型包括 数字、字符串、布尔值、null值、undefined值。
其他的值都是对象。对象是可变的键控集合。数组、函数、正则表达式都是对象。
对象是属性的容器,属性都是名字和值对。名字可以是包括空字符串在内的全部字符串。值可以是除了undefined之外的任何值。
JavaScript中的对象是无类别(class-free)的。
JavaScript包括一个原型链特性,允许对象继承另一个对象的属性。正确的使用能减少对象初始化的时间和内存损耗。
对象字面量:
1
var
empty_object = {};
2
3
var
stoog = {
4
"first-name"
:
"Jerry"
,
5
second_name :
"howead"
6
};
注意:
1.如果属性名称合法并且不是保留字,那么名字的 引号 可以不写。也就是说,是“保留字”的时候,“属性名称”一定要打引号,否则IE浏览器下报错;
2.另外,对象的最后一个属性值后面是不要逗号“,”的,不然,IE浏览器又回报错,切记!!!
检索:
1、stoog["first-name"]
2、stoog.second_name
如果尝试返回一个不存在的元素的值,那么将返回一个undefined值。
||可以用来填充默认值
如:var middle = stoog["first-name"]||”(none)”;
检索undefined值将会导致TypeError异常,可以使用&&来避免错误
flight.equipment && flight.equipment.model //undefined.
引用 reference
对象通过引用来传递,他们永远不会被拷贝
原型 Prototype
当用Prototype编写一个类后,当new一个新的object,浏览器会自动把prototype中的内容附加在object上。
反射 Reflection
typeof flight.number //’number’ 该方法会检查原型链。
flight.hasOwnProperty(‘number’) //true .该方法不会检查原型链
枚举 Enumeration
for in 可以用来遍历一个对象中所有的属性名。会列出所有的属性,包括函数和可能不关心的原型中的属性。并且不按照顺序取得。
所以可以用 typeof 或者hasOwnProperty来过滤不需要的值。
所以通常使用for而不是for in,可以得到我们想要的属性,而不会得到原型链中的属性,并且可以按顺序取得。
删除 delete
它会删除对象中包含的属性,但是不触及原型链中的任何对象。所以删除对象的属性可能会让原型链中的属性浮现出来。
减少全局变量污染 Global Abatement
最小化使用全部变量的一个方法是在应用中只创建唯一一个全局变量,然后让该变量称为你的应用的容器。
闭包也是一个有效减少全局污染的方法。
++++++++++++++++++++++++++++++++++++++++++++++++++
JavaScript 字面量对象 与 数组 混用
1、数组的创建
1.1 采用“数组字面量”
JS的数组是无类型的,里边可以存放任何类型的数据,如:
1
var
aValues=[
"string"
, 24,
true
,
null
];
这里定义了一个数组字面量,可用如下方式访问:
1
alert(aValues[0]);
//输出字串”string”
2
alert(aValues[1]);
//输出数字24
3
alert(aValues[2]);
//输出布尔值true
4
alert(aValues[3]);
//输出null。
1.2、 如果不想用字面量表示法定义数组,也可以用Array的构造函数。如:
1
var
aValues =
new
Array(
"string"
, 24,
true
,
null
);
2、对象的创建
2.1、用对象字面量,如:
1
var
oCar = {
2
"color"
:
"red"
,
3
"doors"
: 4,
4
"paidfor"
:
true
5
}
这里创建了一个对象,内有三个属性,可用如“.”号的方式访问对象的属性:
1
alert(oCar.color);
//输出”red”
2
alert(oCar.door);
//输出”4”
3
alert(oCar.paidfor);
//输出”true”
也可用“[“属性”]”的方式得到属性值,如下:
1
alert(oCar[
"color"
]);
//输出字串”red”
2
alert(oCar[
"door"
]);
//输出字串”4”
3
alert(oCar[
"paidfor"
]);
//输出字串”true”
2.2、同样,也可使用JS的object构造函数来创建一个对象。如下:
1
var
oCar =
new
object();
2
oCar.color =
"red"
;
3
oCar.doors = 4;
4
oCar.paidfor =
true
;<span style=
"font-size: x-small;"
> </span>
2、数组和对象的混合
这里只能使用混合字面量,来创建“对象数组”或“包含数组的对象”。如下:
01
var
oCars = [
02
{
03
"color"
:
"red"
,
04
"doors"
: 2,
05
"paidfor"
:
true
06
07
},
08
{
09
"color"
:
"blue"
,
10
"doors"
: 4,
11
"paidfor"
:
true
12
},
13
{
14
"color"
:
"white"
,
15
"doors"
: 2,
16
"paidfor"
:
false
17
}
18
];
这就是一个对象数组,里面包含了三个对象,访问时形如这样:
1
alert(oCars[1].color);
//输出“blue”
如下是一个包含数组的对象:
1
oCarInfo = {
2
"availableColors"
: [
"red"
,
"blue"
,
"white"
],
3
"availableDoors"
: [2, 4]
4
};
访问时形如:
1
alert(oCarsInfo.availableColor[1]);
// 输出“blue”
- 【js与jquery】javascript中对象的理解
- 【js与jquery】javascript中的this关键字的理解
- Jquery第一篇【介绍Jquery、回顾JavaScript代码、JS对象与JQ对象的区别】
- 【JS】JavaScript中对象的创建与原型模式
- 通过jquery获取input的value问题--理解JQuery对象和JS:DOM对象区别与联系
- 深入学习理解jQuery中的extend方法以及JavaScript中对象的复制
- javascript中对象与原型的理解;null和undefined的理解
- jquery中拖动对象的理解
- 【javascript】悟透javascript(理解js面向对象的好文章)
- DOM对象与jQuery对象的理解与分析
- javascript中对象字面量的理解
- JavaScript中原型对象的彻底理解
- 对javascript中arguments对象的理解
- JavaScript中原型对象的彻底理解
- JavaScript中原型对象的彻底理解
- JavaScript中原型对象的彻底理解
- JavaScript中创建对象过程的理解
- javascript中对象字面量的理解
- 基于Java的设计模式(1)
- 硬件_CPU 个数硬件类型
- 在太平洋人寿保险公司工作好不好?
- UML静态图
- C#中的接口和类有什么区别
- 【js与jquery】javascript中对象的理解
- powerbuilder中datawindow数据源控件中添加查询参数
- JavaScript笔记
- Linux查询用户相关信息(w,who, last..)
- C# WinForm窗体及其控件自适应各种屏幕分辨率
- IP数据报格式
- 百度贴吧10亿量级LAMP架构分享
- 2012年北京成人高校招生录取最低控制分数线
- 2-sat&&http://poj.org/problem?id=3648