浏览 1699 次
锁定老帖子 主题:Javascript 对象 (二)
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-12-29
最后修改:2008-12-29
访问对象的属性有两种方式访问对象的属性。
第一种访问方法适合任意情况。但是如果属性是无效的命名的话,如上一节所说的属性命名'1name'或者'my name'这种情况用点的方式访问就是错误的。这一点要注意。
下面具体看一个对象访问的例子 var book = { name:'Javascript Fundation', published:jixie. author:{ firstname:'nicholas', lastname:'xia' } };
1.获取author对象的firstname属性 book.author.firstname //nicholas
2.获取author对象的lastname属性,我们尝试用另一个写法 book['author']['lastname'] //xia 我们也可以用混合的访问方式 book.author['lastname']或者book['author'].lastname 这些方式都是有效的,要灵活去运用
在属性是动态的情况下,一般用数组的访问对象的方法。 var key ='lastname' book.author[key];//xia 调用对象的方法var hero = { breed: 'Turtle', occupation: 'Ninja', say: function() { return 'I am ' + hero.occupation; } } hero.say(); 访问对象的方法很简单,有点就行,不过也可以用数组的方式,看起来比较诡异 如 hero['say'](); 不推荐这种写法,访问对象的时候尽量用点的方式。
修改属性和方法因为Javascript是动态语言,所以在任何时候都可以修改对象的属性和方法。看如下的例子 var hero={}; hero是个空的对象。 typeof hero.breed;//undefined 说明了hero对象没有breed的属性 接下来可以添加属性和方法了 hero.breed = 'turtle'; hero.name = 'Leonardo'; hero.sayName = function() {return hero.name;}; 调用方法 hero.sayName();//Leonardo 删除属性
delete hero.name;//true hero.sayName();//方法失败 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2008-12-29
最后修改:2008-12-29
动态增加的方法,如何删除呢?只能设置成一个空函数么?
|
|
返回顶楼 | |
发表时间:2009-01-10
hanjs 写道 动态增加的方法,如何删除呢?只能设置成一个空函数么? 和删除属性一样 var a ={}; a.b=function(){ alert("cc"); } a.b(); delete a.b; a.b(); |
|
返回顶楼 | |