2021-10-03

2、创建对象的三种方式

2.1利用字面量创建对象

对象字面量:就是花括号{}里面包含了表达这个具体事物()的属性和方法

//1.利用对象字面量创建对象()
var obj = {
    uname:'张三丰',
    age:18;
    sex:'男'
    sayhi:function(){
        console.log('hi~')
   }
}
//(1)里面的属性或者方法我们采取键值对的形式 键 属性值: 值 属性值
//(2)多个属性或者方法中间用逗号隔开
//(3)方法冒号后面跟的是一个匿名函数
//2.使用对象
//(1)调用对象的属性 我们采取 对象名.属性名 ,我们理解为 的
console.log(obj.uname);
//(2)、调用属性还有一种方法 对象名['属性名']
console.log(obj['age']);
//(3)调用对象的方法 saayhi 对象名.方法名() 千万不要忘记添加小括号
obj.sayhi();
var num 10;
var obj = {
    age: 10;
    fn:function)(){
        
    }
}
​
function fn(){
    
}
console.log(obj.age);
//console.log(age);

总结:变量、属性、函数、方法的区别

1、变量和属性是相同的,它们都是储存数据的。变量单独使用并赋值,使用的时候直接写变量名,单独存在。属性,在对象里面不需要单独声明,使用的时候必须是 对象.属性。

2、函数和方法的相同点,它们都是实现某种功能,做某件事,函数单独声明,并且调用的,函数名(),单独存在。方法,在对象里面,调用的时候,对象.方法()

2.2利用new Object创建对象

var obj = new Object(); //创建一个空的对象
obj.uname = '张三丰';
obj.age = '张三丰'';
obj.sex = '男';
obj.sayhi = function(){
    console.log('hi~');
}
//(1)我们利用 等号 = 赋值的方法 添加对象的属性和方法
//(2)每个属性和方法之间用分号结束
console.log(obj.uname);
console.log(objp['sex'])
obj.sayhi();

2.3利用构造函数创建对象

构造函数:是一种特殊的函数,主要用来初始化对象,即为对象成员变量的初始值,它总与new运算符一起使用,我们可以把对象中一些公共属性和方法抽取出来。

//为啥要用构造函数来创建对象
​
var ldh = {
    uname: '刘德华',
    age: 55,
    sing: function(){
        console.log('冰雨');
    }
}
​
var zxy = {
        uname: '张学友',
        age: 58,
    sing: function(){
        console.log('李香兰')
    }
}
//因为我们每创建一次对象,里面的很多属性和方法都是相同的,我们只能复制到
//因此我们可以利用函数的方法 重复这些相同的代码,我们把这个函数称为构造函数
//又因为这个函数不一样,里面封装的不是普通代码,而是对象
//构造函数,就是把我们对象里面一些相同的属性和方法抽出来封装到函数里面
//抽取相同属性的代码块
//构造函数的语法格式
function 构造函数名(){
    this.属性 = 值;
    this.方法 = function(){
        
    }
}
//new 构造函数名();
function Star(uname,age,sex){
    this.name = uname;
    this.age = age;
    this.sex = sex;
    this.sing = function(sang){
        console.log(sang);
    }
}
var ldh = new Star('刘德华',18,'男');//调用函数方会是一个对象
//console.log(typeof ldh);
console.log(ldh.name);
console.log(ldh['sex']);
ldh.sing('冰雨');
var zxy = new Star('张学友',78,'男');
​
​
​
//1、构造函数首字母要大写
//2、我们构造数不需要return 就可以返回结果
//3、我们调用函数必须使用 new
//4、我们只要new Star() 调用函数就是创建了一个对象
//5、我们的属性和方法前面必须添加this
​
function hero(name,type,blood,attack){
    this.name = name;
    this.type = type;
    this.blood = blood;
    this.attack = attack;
    this.hit = function(hit){
        console.log(hit);
    }
    }
var lianpo = new hero('lianpo','力量型','100血量','近战');
console.log(lianpo.name);
console.log('廉颇打后羿');

2.4构造函数和对象

//1、构造函数泛指一大类 明星 类似java里面的类
function hero(name,type,blood,attack){
    this.name = name;
    this.type = type;
    this.blood = blood;
    this.attack = attack;
    this.hit = function(hit){
        console.log(hit);
    }
    }
//2、对象是一个具体的事物 刘德华 == (name:"刘德华",age:18, sex:'男',sing:)
var lianpo = new hero('lianpo','力量型','100血量','近战');
//3、我们利用构造函数创建对象的过程我们也称为实例化

3. new关键字

new关键字的执行过程

//1、new 构造函数可以在内存中创建一个空的对象
//2、this 就会指向刚才的空对象
//3、执行构造函数里面的代码 给这个空对象添加属性和方法
//4、返回这个对象

遍历对象

//遍历对象
var obj = {
    name : 'pink老师';
    age: 18;
    sex:'男';   
}
console.log(obj.name);
console.log(obj.age);
console.log(obj.sex);

for...in 遍历

//遍历对象
var obj = {
    name : 'pink老师';
    age: 18;
    sex:'男';   
}
//console.log(obj.name);
//console.log(obj.age);
//console.log(obj.sex);
for(var k in obj){
    console.log(k);//k 变量 输出 得到的是 属性值
    console,log(obj[k]);
}
//我们使用for in里面的变量 k

小结

1、对象可以让代码块更加简单

2、对象复杂数据类型object

3、本质:对象是一组无序的相关属性和方法的集合

4、构造函数泛指一大类,比如苹果,不管是什么颜色的苹果都是苹果

5、对象实例特指一个事物,比如这个苹果

6、for...in 语句用于对象的属性进行循环操作

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值