什么是对象
在Javascript中万物皆对象。
典型的对象是由变量和函数组成的键值对的集合:
var obj1 = {
a: 1, //注意是逗号不是分号
b: 2,
c: function(){
...
}
}
复制代码
对象的属性
- 获取和操作属性的两种方式:
- obj.a
- obj[a]
- 当属性名当中有特殊字符如空格或者连接符的时候只能用第二种方式
obj.first-name
报错obj[first-name]
正确
- for in 遍历时也只能用第二种方式。
- 遍历属性:
for(var pN in obj1){
console.log(pN+"的值是:"+obj1[pN]);
}
复制代码
创建对象的方法
- 字面量创建
var obj1 ={...}
:- 当想在obj1的基础上创建obj2的时候就会出问题:
var obj2 = obj1; // 对象的赋值语句实际上是对地址的引用,其实obj2 和obj1指向同一个对象 obj2.a = 3; // obj2的属性发生变化时,obj1也会相应变化 console.log(obj1.a); //3 复制代码
- 用类/构造函数的方式创建对象:解决了前面提到的问题,可以创建相似的多个对象实例。
- 区别于普通函数,类或构造函数常用this绑定到对象实例,并且函数名首字母大写:
function PersonClass(pName, pAge){ //创建构造函数 this.name = pName; this.age = pAge; this.slogan = function(){ ... } } var person1 = new PersonClass("xiaoming","18"); //用new关键字创建person1对象 var person2 = new PersonClass("xiaohong","19"); //person2 与person1是不同的对象; 复制代码
- 命名空间:多人同时做一个项目时,自己收集的方法集合,通常用自己名字缩写作为前缀调用:
murphy.slogan()
,
JavaScript自带的一些常用对象和属性:
如Date对象,Math对象等。详情点击w3cschool javascript 手册