ES5对象学习—单个对象的创建

JavaScript中的对象

作为一名优秀的程序猿,不会还有人没有对象吧。
既然如此,下面我们就来学习一下如何让自己拥有一个对象。
    首先来了解一下对象,在JavaScript中,对象(Object)是一个很重要的概念,对象是JS最重要的数据类型。
那么什么是对象呢?
    对象不是你的boyfriend或girlfriend。在JavaScript中,对象是一组"键值对"的集合,是一组无序的数据集合。
创建对象的方式
  常用的创建对象的方式有两种,字面量方式或是构造函数方式。

  • 字面量方式
var obj={
	name:'Curry',
	age:32,
	sayMyName:function(){
		console.log(this.name);
	}
}
  • 构造函数方式
var obj=new Object();
obj.name='Curry';
obj.age=32;
obj.sayMyName=function(){
	console.log(this.name);
}

了解到对象是如何创建的之后,我们来谈谈什么是"属性"。
    前面说到,对象是一组"键值对"的集合。在JavaScript中,我们把"键值对"的键名称作"属性",而"键值对"的键值可以为任意类型,可以是基本数据类型,也可以是引用类型。
那么何为"方法"呢?
    当"键值对"中的键值是函数时,我们就可以把"键值对"的键名称为"方法"。

访问对象属性的方式
既然学会了如何创建对象,也知道了何为属性,那么必然离不开对属性的访问。
访问对象属性的方式有两种,点方式或中括号方式。

  • 点方式
var obj={
	name:'Curry',
	age:32,
	sayMyName:function(){
		console.log(this.name);
	}
}
var a=obj.name;//Curry
  • 中括号方式
var obj={
	name:'Curry',
	age:32,
	sayMyName:function(){
		console.log(this.name);
	}
}
var a=obj["name"];//Curry

访问对象的属性可以是属性的读取亦可以是属性的赋值。
    属性的读取就是读取对应"属性"的键值。
    属性的赋值,我们需要了解到的是,在构造函数方式创建对象时,是先定义对象,后定义属性的。这是因为JavaScript允许属性的"后绑定",只要是存在的对象,可以在任何时候新增对象的属性。

  • 点方式
var obj={
	name:'Curry',
	age:32,
	sayMyName:function(){
		console.log(this.name);
	}
}
//属性的读取
obj.name; //Curry
//属性的赋值
obj.age=31;//age属性已存在,即修改键值
obj.hobby='basketball';//hobby属性未存在,即新增hobby属性

//obj={
//	name:'Curry',
//	age:31,	
//	sayMyName:function(){
//		console.log(this.name);
//	},
//	hobby:'basketball'
}
  • 中括号方式
var obj={
	name:'Curry',
	age:32,
	sayMyName:function(){
		console.log(this.name);
	}
}
//属性的读取
obj["name"]; //Curry
//属性的赋值
obj["age"]=31;//age属性已存在,即修改键值
obj["hobby"]='basketball';//hobby属性未存在,即新增hobby属性

//obj={
//	name:'Curry',
//	age:31,	
//	sayMyName:function(){
//		console.log(this.name);
//	},
//	hobby:'basketball'
}

访问对象的属性有两种方式,而方法作为"特殊"的属性,只能通过点方式访问。

var obj={
	name:'Curry',
	age:32,
	sayMyName:function(){
		console.log(this.name);
	}
}
//错误的方式
obj.sayMyName;
//正确的方式
obj.sayMyName();	//Curry
//中括号方式访问方法
obj["sayMyName()"];	//据我所知是没有什么效果

查看对象属性的方式
    查看对象本身所具有的属性,我们可以想到通过console.log()打印对象来查看,除此之外,还有一种方式,就是Object.keys( )方法,参数是对象,返回值为数组。

var obj={
	name:'Curry',
	age:32,
	sayMyName:function(){
		console.log(this.name);
	}
}
Object.keys(obj);//['name','age','sayMyName']

删除对象属性的方式
想要删除对象的属性,可以使用delete命令,使用delete命令删除属性,删除成功会返回true

var obj={
	name:'Curry',
	age:32,
	sayMyName:function(){
		console.log(this.name);
	}
}
console.log(Object.keys(obj));//[ 'name', 'age', 'sayMyName' ]
console.log(delete obj.age);//true
console.log(Object.keys(obj));//[ 'name', 'sayMyName' ]
console.log(delete obj.man);//true

从上面的代码你发现了什么吗?
为什么最后一行返回的是true;
这是因为delete方法"只能"返回true,因为delete即使删除一个不存在的属性也不会报错,并且返回的是true。

学习了对象类型,你有什么想法吗?赶快为自己new一个对象吧!!!

如果有错欢迎在下方评论,感谢您的观看。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值