在本文主要介绍javascript对象属性的赋值,读取属性,处理读取属性时的错误,以及如何安全的删除javasscript的属性
创建对象
var Person = {
name:'freax',
age:'18',
say: function () {
console.info(this.name);
}
};
读取属性
var name = Person.name; //freax
设置属性
Person.name = 'huangyanxiong';
属性访问错误
undefined
var height = Person.height;
//尝试访问一个对象不存在的属性,javascript并不会报错,而是返回undefined
抛出异常
var sex = Person.lastName.length; //尝试访问一个不存的对象会抛出异常
在我们无法保证Person和Person.lastName都是对象的时,为了保证上面的表达式不抛出异常,可以使用以下表达式
var length = Person && Person.lastName && Person.lastName.length;
//利用&&短路行为,也就是前面两个表达式为真时执行第三个
为null和undefined设置属性也会报类型错误
null.name = 'freax'; //抛出类型错误
undefined.name = 'huangyanxiong';//同上
如果给一个只读的属性设置值,按照我们正常逻辑只读也就不可写,而设置是写的行为,估计会报错,可是在javascript并不会这样,他javascript并不会报错,也不会抛出异常
尝试给构造函数原型设置值
Object.prototype = 'Give you a surprise';
console.info(Object.prototype); //没有任何变化
delete 删除属性
delete Person.name;
delete Person['age'];
注意delete 只能删除自有的属性,不能删除继承属性,delete什么都可以删除,他都会返回true
var o = {x:1,y:2};
delete o.x; //true
delete o.x; //true
delete o.toString;//true
delete 1;//true