js Object.freeze(obj)冻结一个对象或者一个数组,使其不能发生变化


	冻结一个对象或者一个数组,冻结的是对象本身
	
	冻结后的对象或者数组不能被修改
	
	不能添加新的属性  不能删除已有属性   不能修改已有属性的值
	
	返回值是被冻结的对象本身,与被冻结的源对象完全一致,也被冻结
	
  
	let obj = {
      "name": "张三",
      "age": 18,
      "sex": '男'
    }

    let _obj = Object.freeze(obj)

    console.log(_obj) // 返回值是被冻结的对象本身
	// {name: "张三", age: 18, sex: "男"}

    obj.name = "李四"

    obj.school = "中南大学"
    
    delete obj.sex

    console.log(obj) // 不能修改、添加、删除已有属性的值
	// {name: "张三", age: 18, sex: "男"}

    console.log(_obj) // 返回值与被冻结的源对象完全一致
	// {name: "张三", age: 18, sex: "男"}

    _obj.age = 19

    console.log(obj) 
	// {name: "张三", age: 18, sex: "男"}

    console.log(_obj) // 返回值也被冻结
	// {name: "张三", age: 18, sex: "男"}


    let arr = ["zhangsan","lisi","wangwu"]

    let _arr = Object.freeze(arr) // 可以冻结数组

    console.log(_arr) // 返回值与原数组一致
	// ["zhangsan", "lisi", "wangwu"]

    arr[0] = "maliu"

	arr[4] = "shengqi"

    // arr.push("shengqi") // 会报错

    console.log(arr)  // 冻结后不可以修改、添加和删除
	// ["zhangsan", "lisi", "wangwu"]

    console.log(_arr)
	// ["zhangsan", "lisi", "wangwu"]

    _arr[1] = "yunba"

    console.log(arr) 
	// ["zhangsan", "lisi", "wangwu"]

    console.log(_arr); // 返回值也不可以修改、添加和删除
	// ["zhangsan", "lisi", "wangwu"]

    
	
	方法冻结的是对象或数组,如果其 属性 的 属性值 是数组(子)或者对象(子),可以修改数组(子)或对象(子)的属性值
	

    let obj = {
      name: "zhangsan",
      interest: ["boll","book","music"]
    }

    let _obj = Object.freeze(obj)

    obj.interest[2] = "food"

    obj.interest.push("teach")

    console.log(obj) // 可以修改数组(子)中的属性值,对象也是同理
	// {name: "zhangsan", interest: ["boll", "book", "food", "teach"]}

    console.log(_obj) // 浅拷贝
	// {name: "zhangsan", interest: ["boll", "book", "food", "teach"]}
	

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值