现实生活中:万物皆对象,对象是一个具体的事物,看得见摸得着的实物。例如,一本书、一辆汽车、一个人可以是"对象",一个数据库、一张网页、一个与远程服务器的连接也可以是"对象"。在JavaScript中,对象是一组无序的相关属性和方法的集合,所有的事物都是对象,例如字符串、数值、数组、函数等。
对象是由属性和方法组成的。
属性:事物的特征,在对象中用属性来表示(常用名词)
方法:事物的行为,在对象中用方法来表示(常用动词)
在JavaScript中,现阶段我们可以采用三种方式创建对象(object):
- var obj = {
- uname:'赵飞帆',
- age:20,
- sex:'男',
- sayHi:function() {
- console.log('hi~~');
- }
- }
- console.log(obj.uname);//赵飞帆
- console.log(obj['sex']);//男
- obj.sayHi();//hi~~
- var obj = new Object();
- obj.uname='赵飞帆';
- obj.age=18;
- obj.sex='男';
- obj.sayHi=function() {
- console.log('hi~~');
- }
- console.log(obj.uname);//赵飞帆
- console.log(obj['sex']);//男
- obj.sayHi();//hi~~
我们前面两种创建对象的方式一次只能创建一个对象,构造函数就是把我们对象里面一些相同的属性和方法抽象出来封装到函数里面。我们利用构造函数创建对象的过程我们也称为对象的实例化。
function 构造函数名() {
this.属性=值;
this.方法=function() {
}
}
new 构造函数名();
- //构造函数:泛指的某一大类,它类似于java语言里面的类(class)
- function Star(uname,age,sex) {//构造函数名字首字母要大写
- this.name=uname;
- this.age=age;
- this.sex=sex;
- this.love = function(lover) {
- console.log(lover);
- }
- }
- //对象:特指,是一个具体的事物
- var zff = new Star('赵飞帆',20,'男');
- console.log(typeof zff);
- console.log(zff);
- zff.love('爱就是陈亚婷');
- var cyt = new Star('陈亚婷',21,'女');
- console.log(cyt.name);
- cyt.love('爱就是赵飞帆');
- var obj = {
- name:'赵飞帆',
- age:20,
- sex:'男',
- fn: function() {}
- }
- //我们使用for in里面的变量我们喜欢写k或者key
- for(var k in obj) {
- console.log(k);//name k变量输出是属性名
- console.log(obj[k]);//赵飞帆 20 男 obj[k]得到是属性值
- }