看了很多介绍javascript面向对象技术的文章,很晕.为什么?不是因为写得不好,而是因为太深奥.
javascript中的对象还没解释清楚怎么回事,一上来就直奔主题,类/继承/原型/私有变量....
结果呢,看了大半天,有了一个大概的了解,细细一回味,好像什么都没懂...
这篇文章是参考<<javascript-the definitive guide,5th edition>>第7,8,9章而写成的,我也
会尽量按照原书的结构来说明javascript的面向对象技术(对象/数组->函数-->类/构造函数/原型).对一些我自己也拿捏不准的地方,我会附上原文的英文语句,供大家参考.
如果不做说明,则文中出现的所有英文语句(程序体除外)都是引自<<javascript-the definitive guide,5th edition>>.
-------------------------------------------------
对象和数组(Objects and Arrays)
什么是对象?把一些"名字-属性"的组合放在一个单元里面,就组成了一个对象.我们可以理解为javascript中
的对象就是一些"键-值"对的集合(An object is a collection of named values. These named values are usually referred
to as properties of the object.--Section3.5).
"名字"只能是string类型,不能是其他类型,而属性的类型则是
任意的(数字/字符串/其他对象..).可以用new Object()来创建一个空对象,也可以简单的用"{}"来创建一个
空对象,这两者的作用是等同的.
Js代码
1.var emptyObject1 = {}; //创建空对象
2.var emptyObject2 = new Object(); //创建空对象
3.var person = {"name":"sdcyst",
4. "age":18,
5. "sex":"male"}; //创建一个包含初始值的对象person
6.alert(person.name); //sdcyst
7.alert(person["age"]); //18
var emptyObject1 = {}; //创建空对象
var emptyObject2 = new Object(); //创建空对象
var person = {"name":"sdcyst",
"age":18,
"sex":"male"}; //创建一个包含初始值的对象person
alert(person.name); //sdcyst
alert(person["age"]); //18 从上面的例子我们也可以看到,访问一个对象的属性,可以简单的用对象名加"."后加属性的名字,也
可以用"[]"操作符来获取,此时在[]里面的属性名字要加引号,这是因为对象中的索引都是字符串类型的.
javasript对象中属性的个数是可变的,在创建了一个对象之后可以随时对它赋予任何的属性.
Js代码
1.var person = {};
2.person.name = "sdcyst";
3.person["age"] = 18;
4.alert(person.name + "__" + person.age); //sdcyst__18
5.
6.var _person = {name:"balala","age":23}; //在构建一个对象时,属性的名字可以不用引号来标注(name),
7. //但是仍旧是一个字符串类型.在访问的时候[]内仍旧需要引号
8.alert(_person["name"] + "__" + person.age); //balala__23
9.alert(_person[name]); //undefinied
var person = {};
person.name = "sdcyst";
person["age"] = 18;
alert(person.name + "__" + person.age); //sdcyst__18
var _person = {name:"balala","age":23}; //在构建一个对象时,属性的名字可以不用引号来标注(name),
//但是仍旧是一个字符串类型.在访问的时候[]内仍旧需要引号
alert(_person["name"] + "__" + person.age); //balala__23
alert(_person[name]); //undefinied 通过"."操作符获取对象的属性,必须得知道属性的名字.一般来说"[]"操作符获取对象属性的功能更强大一些,
可以在[]中放入一些表达式来取属性的值,
比如可以用在循环控制语句中,而"."操作符则没有这种灵活性。
Js代码
1.var name = {"name1":"NAME1","name2":"NAME2","name3":"NAME3","name4":"NAME4"};
2.var namestring = "";
3.for(var props in name) { //循环name对象中的属性名字
4. namestring += name[props];
5.}
6.alert(namestring); //NAME1NAME2NAME3NAME4
7.
8.namestring = "";
9.for(var i=0; i<4; i++) {
10. namestring += name["name"+(i+1)];
11.}
12.alert(namestring); //NAME1NAME2NAME3NAME4
var name = {"name1":"NAME1","name2":"NAME2","name3":"NAME3","name4":"NAME4"};
var namestring = "";
for(var props in name) { //循环name对象中的属性名字
namestring += name[props];
}
alert(namestring); //NAME1NAME2NAME3NAME4
namestring = "";
for(var i=0; i<4; i++) {
namestring += name["name"+(i+1)];
}
alert(namestring); //NAME1NAME2NAME3NAME4 delete操作符可以删除对象中的某个属性,判断某个属性是否存在可以使用"in"操作符.
Js代码
1.var name = {"name1":"NAME1","name2":"NAME2","name3":"NAME3","name4":"NAME4"};
2.var namestring = "";
3.for(var props in name) { //循环name对象中的属性名字
4. namestring += name[props];
5.}
6.alert(namestring); //NAME1NAME2NAME3NAME4
7.
8.delete name.name1; //删除name1属性
9.delete name["name3"]; //删除name3属性
10.namestring = "";
11.for(var props in name) { //循环name对象中的属性名字
12. namestring += name[props];
13.}
14.alert(namestring); //NAME2NAME4
15.
16.alert("name1" in name); //false
17.alert("name4" in name); //true
var name = {"name1":"NAME1","name2":"NAME2","name3":"NAME3","name4":"NAME4"};
var namestring = "";
for(var props in name) { //循环name对象中的属性名字
namestring += name[props];
}
alert(namestring); //NAME1NAME2NAME3NAME4
delete name.name1; //删除name1属性
delete name["name3"]; //删除name3属性
namestring = "";
for(var props in name) { //循环name对象中的属性名字
namestring += name[props];
}
alert(namestring); //NAME2NAME4
alert("name1" in name); //false
alert("name4" in name); //true 需要注意,对象中的属性是没有顺序的.
对象的constructor属性
每一个javascript对象都有一个constructor属性.这个属性对应了对象初始化时的构造函数(函数也是对象).
Js代码
1.var date = new Date();
2.alert(date.constructor); //Date
3.alert(date.constructor == "Date"); //false
4.alert(date.constructor == Date); //true
分享到:
相关推荐
下面将根据"JS学习资料(自己整理)"的描述,深入探讨JavaScript的基础知识。 一、变量与数据类型 JavaScript 支持七种数据类型,包括两种原始类型:Undefined、Null、Boolean、Number、String、Symbol(ES6新增)...
此“javascript_js学习教程”是针对初学者精心设计的,来源于中兴通讯的内部培训资料,旨在帮助新入门的开发者快速掌握JavaScript的基础知识和实践技巧。 一、JavaScript基础 1. 变量与数据类型:JavaScript支持...
- **免费Codecademy课程**:提供互动式的JavaScript学习路径。 - **W3Schools**:提供了丰富的JavaScript教程和示例代码。 压缩包内的文件可能与这些知识点直接相关: 1. **FixedTips.htm**:可能是一个展示固定...
JavaScript学习指南(第3版)》系统地介绍了JavaScript的基本语法、基本对象、调试工具与排错技术、事件处理机制、浏览器对象模型/文档对象模型(BOM/DOM)等方面的知识,并通过一个复杂的示例深入探讨了Ajax应用。...
JavaScript是Web前端开发的核心语言之一,它为网页和应用程序提供了动态交互的能力。在JavaScript中,条件语句是...在头歌教学实践平台的Web前端开发课程中,这些基础知识的学习和实践将为你的编程技能打下坚实的基础。
JavaScript,简称JS,是Web开发...综上所述,这个"JS学习.zip"压缩包提供了全面的JavaScript学习资源,从基础到高级,覆盖了核心概念、DOM操作、面向对象和异步编程,是初学者或进阶者提升JavaScript技能的宝贵资料。
本学习笔记将深入探讨JavaScript的核心概念,包括变量、数据类型、操作符、控制流程、函数、对象、数组、原型链、闭包等,并结合实际示例,如my.js、order.js、login.js等文件,来讲解其在实际项目中的应用。...
在“学习资料 js学习资料”这个主题下,我们主要关注JavaScript的基础知识、实例应用以及与CSS的协同工作。 1. JavaScript基础: - 变量:JavaScript中的变量用于存储数据,可以使用var、let或const关键字声明。 ...
这个压缩包中的“史上最全的JavaScript学习资料”显然包含了一系列丰富的资源,旨在帮助学习者深入理解和掌握JavaScript。 JavaScript最初由Netscape公司的Brendan Eich设计,目的是为了解决网页动态交互的问题,使...
首先,"JS学习"意味着我们将探讨JavaScript的基础语法,包括变量、数据类型(如字符串、数字、布尔值、对象等)、控制结构(如条件语句、循环语句)、函数、作用域、闭包等。这些都是编程的基石,理解它们能够帮助...
JavaScript,简称JS,是一种广泛应用于Web开发的轻量级编程语言,主要负责客户端的动态交互。李炎恢老师的JS学习资料是一套全面且深入的学习资源,适合初学者和有一定基础的开发者进阶学习。 首先,JavaScript是Web...
html css js 学习html css js 学习html css js 学习html css js 学习 html css js 学习html css js 学习html css js 学习html css js 学习 html css js 学习html css js 学习html css js 学习html css js 学习 ...
html css js学习html css js学习html css js学习html css js学习 html css js学习html css js学习html css js学习html css js学习 html css js学习html css js学习html css js学习html css js学习 html css js学习...
html css js 学习笔记html css js 学习笔记html css js 学习笔记 html css js 学习笔记html css js 学习笔记html css js 学习笔记 html css js 学习笔记html css js 学习笔记html css js 学习笔记 html css js 学习...
本压缩包“JavaScript学习笔记_js常用函数封装_js包.zip”包含了对JavaScript基础及进阶技巧的学习资料,特别关注了函数封装和模块化开发实践。 首先,`tool.js`可能是一个实用工具函数集合,封装了一些常见的...
JavaScript(简称JS)是一种广泛应用于Web开发的轻量级、解释型编程语言,以其灵活性和交互性在网页设计中占据核心地位。本课程通过两份PPT深入浅出地介绍了JavaScript的基本概况和主要分类,旨在帮助学习者从宏观...
Javascript学习是Android客户端目前最全面的免费离线Javascript学习书籍,从Html入门到Html样式设计,再到Javascript,提高网页设计能力。主要内容包括: 1、Html基本标签 2、Html表单知识 3、Web2.0(Div+Css样式)...
HTML-CSS-JS 学习HTML-CSS-JS 学习HTML-CSS-JS 学习HTML-CSS-JS 学习 HTML-CSS-JS 学习HTML-CSS-JS 学习HTML-CSS-JS 学习HTML-CSS-JS 学习 HTML-CSS-JS 学习HTML-CSS-JS 学习HTML-CSS-JS 学习HTML-CSS-JS 学习 ...