JavaScript——对象Object

本文详细介绍了JavaScript中的对象,包括创建实例、访问属性、删除属性、检测属性、对象序列化及方法。讲解了点操作符、动态属性访问、对象合并、属性检测、JSON转换以及静态与非静态方法的概念和用法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

11、对象

○ Object
	§ 一组属性和方法的集合
	§ 1、创建实例对象
		□ a、对象字面量
			® 每一次new一个新的对象,就在堆空间有一个新的空间
			var obj = {
				name:'lisi',
				age:20
			}
		□ b、构造函数方式
			var obj = new Object();
			obj.name = 'lisi';
	§ 2、访问属性
		□ a、点操作符
			var obj = {
				name:'lisi',
				age:20
			}
			obj.name = 'terry';
			console.log(obj.name);
		□ b、obj["key"]
			® 1、变量
			® 2、
				◊ obj{
					name-first:'lisi'
				}
				
				◊ obj.name-first        //报错
				◊ obj['name-first'] = 'lisi';
	§ 3、删除属性
		□ delete obj.name
			
	§ 4、检测属性
		□ in:
			"name" in obj
				◊ 继承属性或者私有属性
		□ hasOwnProperty():
			obj.hasOwnProperty('name');
			私有属性:true
			继承属性:false
			
	§ 5、对象序列化
		object——》json:
			JSON.stringify(obj)
			
			json属性名一定会加""
		json——》object
			JSON.parse(json);
		var str = JSON.stringify(obj);
	        console.log(obj);
	        console.log(str);
	        str = JSON.parse(str);
	        console.log(obj);
	        console.log(str);
	        console.log(obj === str);       //false
	
	§ 6、方法
		□ 每一个函数都会在堆区有两个空间
		每一个对象都有一个构造者(constructor)
		每一个函数都有一个原型对象(prototype)
		□ 静态方法
			® 声明在函数内部,只能函数本身调用的方法
				◊ assign(obj1,obj2):将对象合并到第一个参数对象中
					} Object.assign()
					var obj1 = {
				            name : 'lisi'
				        }
				        var obj2 = {
				            name : 'tom',
				            age : 20
				        }
				        var result = Object.assign(obj1,obj2);
				        console.log(result);           //Object { name: "tom", age: 20 }
				        console.log(obj1 === result);             //true
				        console.log(obj2 === result);              //false
				
				◊ keys(obj):
					获取所有属性名
				◊ values(obj):
					获取所有属性值
				◊ defineProperty(obj, 'key', {} ):定义属性
							对象   属性名  属性
					a、{
							value: 20
							writable:true,       //是否可修改
							enumerable:true,     //是否可遍历
							configurable:false      //是否可删除/配置
						}
					b、set/get方法
						不能和第一种方式同时使用
						{
							set:function(){
								//设置过程
								this._age
							}
							
							get:function(){
								//获取属性过程
								return this._age;
							}
						}
						
		□ 非静态方法
			声明在函数的原型对象中,函数原型对象和实例对象均可调用
				◊ constructor
				◊ toString()
				◊ valueOf()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值