对象,对象属性和方法

JavaScript的对象是一种无序的集合数据类型,它由若干键值对组成。对象也是变量。结尾要使用分号。

语法 var object_name = {key:value, key:value,...};

JavaScript用一个{...}表示一个对象,键值对以xxx: xxx形式申明,用,(逗号)隔开。对象的每一个键名又称为“属性”(property),它的“键值”可以是任何数据类型。如果一个属性的值为函数,通常把这个属性称为“方法”,它可以像函数那样调用。注意,最后一个键值对不需要在末尾加,(逗号),如果加了,有的浏览器(如低版本的IE)将报错。

var person = {firstName:"Bill", lastName:"Gates", age:62, eyeColor:"blue"};
// 空格和折行都是允许的。对象定义可横跨多行:
var xiaoming = {
    name: '小明',
    birth: 1990,
    'middle-school': 'No.1 Middle School',
    height: 1.70,
    weight: 65,
    score: null,
    p: function (x) {
    return 2 * x;
    }
};

访问对象属性:

objectName.propertyName  或者  objectName["propertyName"]

属性名middle-school不是一个有效的变量,就需要用''括起来。访问这个属性也无法使用.操作符,必须用['xxx']来访问。在编写JavaScript代码的时候,属性名尽量使用标准的变量名,这样就可以直接通过object.prop的形式访问一个属性了。JavaScript规定,访问不存在的属性不报错,而是返回undefined。

添加删除属性:

var xiaoming = {
    name: '小明'
};
xiaoming.age; // undefined
xiaoming.age = 18; // 新增一个age属性
xiaoming.age; // 18
delete xiaoming.age; // 删除age属性
xiaoming.age; // undefined
delete xiaoming['name']; // 删除name属性
xiaoming.name; // undefined
delete xiaoming.school; // 删除一个不存在的school属性也不会报错

检测是否存在该属性:

var xiaoming = {
    name: '小明',
    birth: 1990,
    school: 'No.1 Middle School',
    height: 1.70,
    weight: 65,
    score: null
};

//方法一使用in,in判断一个属性存在,这个属性不一定是xiaoming的,它可能是xiaoming继承得到的
'name' in xiaoming; // true
'grade' in xiaoming; // false
'toString' in xiaoming; // true

//方法二使用hasOwnProperty(),判断一个属性是否是xiaoming自身拥有的,而不是继承得到的
xiaoming.hasOwnProperty('name'); // true
xiaoming.hasOwnProperty('toString'); // false

访问对象方法:

objectName.methodName(),如果不使用 () 访问对象方法,则将返回函数定义

请不要把字符串、数值和布尔值声明为对象!请避免字符串、数值或逻辑对象。他们会增加代码的复杂性并降低执行速度。

如果通过关键词 "new" 来声明 JavaScript 变量,则该变量会被创建为对象:

var x = new String();        // 把 x 声明为 String 对象
var y = new Number();        // 把 y 声明为 Number 对象
var z = new Boolean();       //	把 z 声明为 Boolean 对象
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值