一.摘要
本文是jQuery系列教程的剧场版, 即和jQuery这条主线无关, 主要介绍大家平时会忽略的一些javascript细节.适合希望巩固javascript理论知识和基础知识的开发人员阅读.
二.前言
最近面试过一些人, 发现即使经验丰富的开发人员, 对于一些基础的理论和细节也常常会模糊. 写本文是因为就我自己而言第一次学习下面的内容时发现自己确实有所收获和感悟.其实我们容易忽视的javascript的细节还有更多, 本文仅是冰山一角. 希望大家都能通过本文有所斩获.
三.Javascript面向对象
Javascript是一门面向对象的语言,虽然很多书上都有讲解,但还是有很多初级开发者不了解.
创建对象
ps: 以前写过一篇详细的创建对象的文章(原型方法, 工厂方法等)但是找不到了, 回头如果还能找到我再添加进来.下面仅仅简单介绍.
在C#里我们使用new关键字创建对象, 在javascript中也可以使用new关键字:
var objectA = new Object();
但是实际上"new"可以省略:
var objectA = Object();
但是我建议为了保持语法一直, 总是带着new关键字声明一个对象.
创建属性并赋值
在javascript中属性不需要声明, 在赋值时即自动创建:
objectA.name = "my name";
访问属性
一般我们使用"."来分层次的访问对象的属性:
alert(objectA.name);
嵌套属性
对象的属性同样可以是任何javascript对象:
var objectB = objectA;
objectB.other = objectA;
//此时下面三个值相当,并且改变其中任何一个值其余两个值都改变
objectA.name;
objectB.name;
objectB.other.name;
使用索引
如果objectA上有一个属性名称为"school.college", 那么我们没法通过"."访问,因为"objectA.school.college"语句是指寻找objectA的school属性对象的college属性.
这种情况我们需要通过索引设置和访问属性:
objectA["school.college"] = "BITI";
alert(objectA["school.college"]);
下面几个语句是等效的:
objectA["school.college"] = "BITI";
var key = "school.college"
alert(objectA["school.college"]);
alert(objectA["school" + "." + "college"]);
alert(objectA[key]);