Object的API(MDN)

本文详细介绍了JavaScript中的Object API,包括Object构造函数的属性、静态方法如Object.assign()、Object.create()、Object.keys()等,以及Object.prototype上的toString()和valueOf()等方法,帮助开发者更好地理解和使用这些核心功能。
摘要由CSDN通过智能技术生成

Object

  • 描述
    • JS中基本所有的对象都是Object类型的实例,它们都会从Object.prototype继承属性和方法。Object构造函数,会根据给定的参数创建对象
	// 如果给定值是 null 或 undefined,将会创建并返回一个空对象
	let obj = new Object(null);
        console.log(obj);
   // 传进去的是一个基本类型的值,则会构造**其包装类型的对象**
    let obj1 = new Object(12);
        console.log(obj1);
   // 如果传进去的是引用类型的值,仍然会返回这个值,经他们复制的变量**保有和源对象相同的引用地址**
    let obj2 = new Object({
   
            name: 'fjh'
        });
        console.log(obj2);

在这里插入图片描述

Object构造函数的属性

  • Object.length . 值为1.
  • Object.prototype . 其显示原型对象,用于其实例对象的隐式原型对象的指向。通过原型链使用其中的方法。

静态方法

Object.assign() (半浅半深拷贝

Object.assign 不会在那些source对象值为 null 或 undefined 的时候抛出错误

  • 语法: Object.assign(target, …sources)
  • 返回值: 目标对象
  • 描述: 将所有可枚举属性(enumerable
    )的值从一个或多个源对象分配到目标对象。它将返回目标对象.
	let obj = {
   
            name: 'fjh',
            sex: {
   
                sex: 'nan'
            }
        }
        let obj1 = {
   };
        obj1 = Object.assign(obj1, undefined);
        console.log(obj1);
        // {} . 空对象.
    let obj = {
   
            name: 'fjh',
            sex: {
   
                sex: 'nan'
            }
        }
        let obj1 = {
   };
        obj1 = Object.assign(obj1, obj);
        obj1.sex.sex = 'nv';
        console.log(obj); 

		//可以修改对象的可枚举属性。
		const obj = Object.create({
   foo: 1}, {
    // foo 是个继承属性。
    		bar: {
   
        		value: 2  // bar 是个不可枚举属性。
    		},
   			 baz: {
   
       			 	value: 3,
      			  enumerable: true  // baz 是个自身可枚举属性。
   			 }
		});
		const copy = Object.assign({
   }, obj);
		console.log(copy); // { baz: 3 }

在这里插入图片描述

Object.create()

  • 语法: Object.create(proto , propertiesObject)
    • proto . 新创建的对象的隐式原型对象。
    • propertiesObject . 可选。需要传入一个对象。属性类型可在这修改。
  • 返回值:一个新对象,带着指定的原型对象和属性
  • (感觉有点绕,还是看下面例子会明白。)
	// 类式继承
	      function Father(name) {
   
            this.name = name;
        }

        function Son(name, age) {
   
            Father.call(this, name);
            this
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值