创建一个对象
var MyObject = { name:'John', age:18 }
你可以看到:
- 对象的名字为MyObject
- 用{和}来定义对象
- 通过逗号来分隔包含在对象中的元素(叫做属性)
- 键值对通过分号分隔,如key:value
对象可以包含任何数据,当然也可以包含其它对象。
var MyObject02 = { name: 'John', age: 18, say: function () { return this.name + '在说话°'; }, eat: function (name) { return name + '在吃饭'; }, myObj: { name: 'Jack', age: 20 } }
访问对象的属性
有 2 种方式可以访问一个对象的属性:
- 用方括号的形式,比如MyObject['age']
- 使用句号的形式,比如MyObject.name
为了访问包含在myObj对象中的name属性,你可以:
MyObject02.myObj.name //或者使用方括号的形式: MyObject02['myObj']['name'] //句号形式与方括号的混合形式的使用也是可以的: MyObject02['myObj'].name MyObject02.myObj['name']
一个使用方括号形式的情况是,在你想访问这个属性的时候预先不知道属性的名字是什么。而是在运行时定义在一个变量中:
var name = 'name'; alert(MyObject02.myObj[name]);
调用对象的方法
因为方法跟属性是一样的,只不过它是一个函数而已,可以像访问属性一样的访问方法:
MyObject02.say() MyObject02.eat('Mary') MyObject02['eat']('Mary')
改变对象属性/方法
JavaScript 是一个动态语言;它可以允许你在任何时候改变已存在对象的属性和方法。这也包括添加新的属性或者删除它们。
添加
- 对象.属性 = value;
- 对象.方法 = function(){….}
- 对象.对象 = {…}
删除
- delete 对象.属性/方法/对象
//定义一个空的对象 var MyObject = {}; //访问对象不存在的属性,返回结果是undefined alert(MyObject.name); //给对象添加一个属性 MyObject.name = 'John'; //给对象添加一个方法 MyObject.say = function () { return this.name + '在说话'; }; //给对象添加一个对象 MyObject.myObj = { name:'Jack', age:18 } //访问对象 alert(MyObject.name); alert(MyObject.say()); alert(MyObject.myObj.name); //删除对象的属性 delete MyObject.name; //访问已删除的属性将返回undefined alert(MyObject.name); alert(MyObject.say());