对象Object

1. 定义

复合数据,把数据(number 、string 、boolean 、null 、undefined 、 object 、 function、array)设计为一个整体的数据容器。用代码来描述现实世界中的业务数据。基本数据称为属性,引用数据称为方法。

2. 对象的成员操作

访问和修改:1.点语法。例:goods.price 

                                                         2.["成员名"]。例:goods["price"]

案例:

var a = "age";
var b = 23;
var obj = {
            like:'read';
            sex:'man'};
obj.name = "Bob"; // 添加新成员
obj[a] = b;
obj['a'] = b;
obj.sex = 'female'  // 修改成员值
obj['like']=run;
console.log(obj);

//控制台打印:{like: 'run', sex: 'female', name: 'Bob', age: 23, a: 23}

总结:中括号内有引号,则引号内的内容为对象的属性名。

3. 创建对象的基本写法

3.1. 直接写对象(对象直接量)

var obj={
    name:"joker",
    age:40,
    birth:717
    }

3.2. 通过函数创建对象

例:

function Person(){
}
var obj1=Person();
var obj=new Person();
console.log(obj1);   // 打印undefined
console.log(obj);     // 打印一个空对象

new关键字

1. 创建一个空对象{ }

2. 用这个创建的空对象去调用函数

3. 整个new表达式会得到一个对象

        如果函数返回值是一个引用数据,new得到的就是这个返回值

        如果函数返回值是一个基本数据,new得到的是创建的新对象

4. 闭包

4. 1. 语法理解:具有独立作用域的代码块。能访问外层作用域变量值的一种设计,因此所有函数都是闭包。

4. 2. 使用场景

        1. 保护数据

原因: 函数内部可以访问函数外部变量,但不能访问内部变量

 如果一个函数内部的变量外部想访问,又不能直接访问:该函数可以返回一个内部的函数,然后这个内部的函数来操作这个函数内部的变量。

function fn () {
	var user={name:"karen",money:100}
	return user
	}
var re=fn();
console.log(re);
re.money=900;
console.log(re.money)  // 900
//这个设计不合理 因为外部直接修改了函数内部的数据
			
//解决办法
function fn () {
	var user={name:"karen",money:100}
	return function  tool (m) { user.money= m }
	}
var re=fn();
re(90);

        2. 实现临时保存数据

利用函数调用栈的独立作用域来实现

        3. 防止变量污染,生成闭包块

5. es6新增功能

5.1 属性

var a = 100;
var nickname = "karen";
var obj = { a, nickname }; //把a设置为对象的属性名,a变量的值设置为a属性的值
console.log(obj);  //{a: 100, nickname: 'karen'}

5.2 方法

    var a = 100;
    var obj = {
      work() { }, //方法
      fn: () => { },
      age: 18,
      a
    }
    console.log(obj);  //{age: 18, a: 100, work: ƒ, fn: ƒ}

5.3 对象的拓展

...person  //取person对象的所有成员

Object.is("hello","hello")  //true,判断是不是同一个

Object.is(-0,+0)  //false 要判断指针

Object.is(NaN,NaN)  //true 

注:console.log( -0==+0)  //true

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值