第十五节:对象

第十五节:对象

概述:对象是一组无序的相关属性和方法的集合

  • 属性:事物的特征,在对象中用属性来表示(表示名词)
  • 方法:事物的行为,在对象中用方法来表示(常用动词)

作用:保存多个对象

万物皆对象
例如:字符串、数值、数组、函数

3.4.1 定义对象

参数、返回值、功能、何时调用

字面量创建对象
// 语法格式:
var 对象名 = {
   键名1:1;
   键名2:2;
}

var o = {
    name: '小明',
    age: 18,
    sex: '男',
    action: function() {
        alert('方法');
    },
    firends: ['韩信', '赵云', '貂蝉'];
}

键值对:
  键:name, age, sex, action, firends
  值:小明, 18,, function() {alert('方法');}, ['韩信', '赵云', '貂蝉']

// 动态加属性
o.love = 'eat';
构造函数创建对象
// 语法格式:
var 对象名 = new Object();
对象名.属性1 =1;
对象名.属性2 =2;
工厂函数创建对象

要基于构造函数创建对象

实际开发常用

// 语法格式:
function Create(参数1, 参数2) {
    var o = new Object();
    o.属性1 = 参数1;
    o.属性2 = 参数2;
    return 0;
}
function Creator(name, age, sex) {
   // 创建对象
   // var o = {};
   // 构造函数创建对象
   var o = new Object();
   o.name = name;
   o.age = age;
   o.sex = sex;
   
   return o;
}

var hero1 = Creator('张三', 18, '男');
var hero2 = Creator('李四', 19, '女');
var hero3 = Creator('王五', 22, '男');


console.log(hero1);
console.log(hero2);
console.log(hero3);
自定义函数创建对象

作用:解决了工厂函数无法通过 instanceof 校验是谁创建出来的对象

// 语法格式
function Creator (形参1, 形参2) {
   this.属性1 = 形参1;
   this.属性2 = 形参2;
}
function Creator (name, age, age) {
   // 
   this.name = name;
   this.age = age;
   this.sex = age;
}

var o1 = new Creator('悟空', 18, '男');

console.log(o1);

// 校验 o1 是否是 Creator 构造函数创建出来的
alert (o1 instanceof Creator);    /// true
new 关键字执行过程
  1. 在内存中创建一个空对象
  2. this 指向创建的对象
  3. 执行函数
  4. 返回当前对象

3.4.2 访问对象
访问对象的三种方式

对象名.属性名 的形式,属性中间不能有空格,而对象名[‘属性名’] 的形式可以存在空格,更灵活

// 语法格式:
对象名.属性名;
对象名[''];
对象名[变量名];	// 值为变量时,这个变量一定要在 键 上出现

// 访问对象
console.log(o.name);
o['age'];
o['action']();
ES6 语法 结构赋值 访问对象
// 创建对象
var o = {
    name: '小明',
    age: 18,
    sex: '男',
    action: function() {
        alert('方法');
    },
    firends: ['韩信', '赵云', '貂蝉'];
}

// 结构赋值 访问对象
var {name, age, sex, action} = o;

// 调用
alert(name);
alert(age);
alert(sex);
// 调用方法时,直接写方法名
action();

3.4.3 校验对象 instanceof
function C(name, age) {
   // 构造函数创建对象
   var o = new Object();
   o.name = name;
   o.age = age;
   retuen o;
}

// 工厂函数创建对象
var o1 = new C('小明', 20);
var o2 = new C('小红', 20);

// 校验对象是谁创建出来的
alert(o1 instanceof Object);

3.4.4 遍历对象

for ··· in ···

var obj = {
   name : '小明',
   age: 18,
   sex: '男'
};

for (var key in obj) {
   // console.log(键, 值);
   console.log(key, obj[key];
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

孤安先生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值