三、Object 对象常用操作方法

Object 构造方法
一、asign vs 扩展运算符 ...
1.共同点:都是浅拷贝
2.开发推荐 扩展运算符...
let obj={
name: 'Tom',
age: 18
};
let obj1={
name: 'Jack',
age: 15,
}
let obj2 = Object.assign({},obj, obj1);
let obj3 = {...obj1, ...obj2};
console.log(obj2); // { name: 'Jack', age: 15 }
console.log(obj3); // { name: 'Jack', age: 15 }
二、create
Object.create()方法创建一个新对象,使用现有的对象来提供新创建的对象的__proto__。
将现有对象作新对象的 __proto__;
class Animal {
constructor(name,age){
this.name= name;
this.age=age;
}
run(){
console.log('动物会跑');
}
}
class Dog extends Animal{
constructor(name,age){
super(name,age)
}
bark(){
console.log('狗会叫');
}
}
let dog = new Dog('taidi',10);
console.log(dog);
let dog1 = Object.create(dog);
console.log(dog1);
四、for in keys values entries
1.for in 会遍历原型上的方法
function Person(){
this.name= 'jack';
this.age=18;
}
Person.prototype.height=180;
Person.prototype.weight=75;
Person.prototype.run=function(){
console.log('jack 在跑步');
}
let p = new Person();
console.log(p);
/*
Person {name: "jack", age: 18}
age: 18
name: "jack"
__proto__:
height: 180
run: ƒ ()
weight: 75
constructor: ƒ Person()
__proto__: Object
*/
for(key in p){ // for in 会遍历原型上的方法
console.log(key); // name age height weight run
}
console.log(Object.keys(p)); // ["name", "age"] 返回一个新的数组,不会遍历原型上的方法
console.log(Object.values(p)); // ["jack", 18] 返回一个新的数组,不会遍历原型上的方法
console.log(Object.entries(p)); // [ [ 'name', 'jack' ], [ 'age', 18 ] ]
五、getPrototypeOf
Object.getPrototypeOf() 方法返回指定对象的原型
返回对象的原型
function Person(name,age){
this.name = name;
this.age = age;
}
Person.prototype.height=180;
Person.prototype.weight=60;
const p = new Person('jack',18);
console.log(Object.getPrototypeOf(p));
经典:判断是否是 plain object
/**
* @param {any} obj The object to inspect.
* @returns {boolean} True if the argument appears to be a plain object.
*/
export default function isPlainObject(obj) {
if (typeof obj !== 'object' || obj === null) return false let proto = obj
while (Object.getPrototypeOf(proto) !== null) {
proto = Object.getPrototypeOf(proto)
} return Object.getPrototypeOf(obj) === proto
}
Oject prototype 方法
一、hasOwnProperty
hasOwnProperty()方法用来判断某个对象是否含有指定的自身属性
用于检查给定的属性在当前对象实例中(而不是在实例原型中)是否存在
重点: for in vs hasOwnProperty
for in 会遍历出对象继承中的可枚举属性
遍历对象自有属性
function Person(){
this.name='tom';
this.age=18;
}
Person.prototype.height = 180;
let p = new Person();
for( let key in p){
if(p.hasOwnProperty(key)){
console.log("自身属性:"+key);// name ,age
}else{
console.log("继承别处的属性:"+key);// height
}
}
二、isPropertyof
isPrototypeOf是用来判断要检查其原型链的对象是否存在于指定对象实例中,是则返回true,否则返回false。
isPrototypeOf vs instanceof
1.instanceof
object1.isPrototypeOf(Object2);(构造函数) : 用于判断object2的构造函数的object1是否在A的原型链上
2.isPropertyof
object1.isPrototypeOf(Object2); : 用于判断object1是否在object2的原型链上;
三、toString
三、Object 对象常用操作方法的更多相关文章
- Set对象常用操作方法和遍历
Set<String> set = new HashSet<String>(); /** * set的常用操作方法有: * add()向集合添加元素 clear()清空集合元素 ...
- JavaScript之Object对象常用属性与方法手册
MDN Object参考地址:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Obje ...
- 【QTP专题】04_对象及操作方法
本节介绍知识点包括 1.QTP自动化的原理 2.两类对象:TO(测试对象).RO(运行对象) 3.操作方法:SetTOProperty,GetROProperty,GetTOProperty 1.QT ...
- Python文件常用操作方法
Python文件常用操作方法 一.对File对象常用操作方法: file= open(file, mode='r', buffering=-1, encoding=None, errors=None, ...
- JavaScript:对Object对象的一些常用操作总结
JavaScript对Object对象的一些常用操作总结. 一.Object.assign() 1.可以用作对象的复制 var obj = { a: 1 }; var copy = Object.as ...
- js中对Object对象的一些常用操作总结
前言我前面的文章,写过js中“类”与继承的一些文章.ES5我们可以通过 构造函数 或者 Object.create()等方式来模拟出js中的“类”,当然,对象呢是类的实例化,我们可以通过如下方式创建对 ...
- JAVA(三)JAVA常用类库/JAVA IO
成鹏致远 | lcw.cnblog.com |2014-02-01 JAVA常用类库 1.StringBuffer StringBuffer是使用缓冲区的,本身也是操作字符串的,但是与String类不 ...
- 详解JavaScript中的Object对象
Object是在javascript中一个被我们经常使用的类型,而且JS中的所有对象都是继承自Object对象的.虽说我们平时只是简单地使用了Object对象来存储数据,并没有使用到太多其他功能,但是 ...
- python 字符串常用操作方法
python 字符串常用操作方法 python 字符串操作常用操作,如字符串的替换.删除.截取.赋值.连接.比较.查找.分割等 1.去除空格 str.strip():删除字符串两边的指定字符,括号的写 ...
随机推荐
- vue开发常见命令
1.安装脚手架 安装脚手架命令:npm install -global vue-cli 2.升级脚手架 有时候需要把整个脚手架升级一下,这个用到命令npm install --global vue-c ...
- 【字符串】ZSC-字符串编辑
Description 从键盘输入一个字符串(长度<=40个字符),对字符串进行编辑.例如,输入"This is a book." 现对该字符串进行编辑,编辑功能有:(1) ...
- FastJSON、Gson和Jackson性能对比
Java处理JSON数据有三个比较流行的类库FastJSON.Gson和Jackson.本文将测试这三个类库在JSON序列化和反序列化的方面表现,主要测试JSON序列化和反序列化的速度.为了防止由于内 ...
- 使用IntelliJ IDEA和Maven管理搭建Web开发环境(以Spring MVC为例)(二)
前言:在使用IntelliJ IDEA和Maven管理搭建Web开发环境(以Spring MVC为例)(一)中已经介绍了如何对web基础环境进行搭建,这里主要演示,如何对spring环境进行搭建,然后 ...
- 【NOI2019模拟】搬砖
[NOI2019模拟]搬砖 Description 小火车很穷,只好去搬砖了. 小火车被工头要求搭建\(n\)座塔,第i个高度为\(H_i\),也就是由\(H_i\)块砖头组成.每次小火车可以携带至多 ...
- 【CQOI2014】危桥
[CQOI2014]危桥 Description Alice和Bob居住在一个由N个岛屿组成的国家,岛屿被编号为\(0\)到\(N-1\).某些岛屿之间有桥相连,桥上的道路都是双向的,但是一次只能供一 ...
- 设计模式のTemplatePattern(模板模式)----行为模式
一.产生背景 在程序设计中,可能每个对象都有共同的地方,而此时如果每个对象定义一次,如下例子,每个对象都写Stay()方法,这样在每个类中都有很多相同的代码,此时,我们需要用到模板设计模式,来解决这个 ...
- 游览器发送http请求经过的步骤
OSI参考模型(Open System Interconnection,开放系统互连),全称为开放系统互联参考模型 ,OSI将计算机网络体系结构划分为了七层 TCP/IP协议族(TCP/IP Prot ...
- CSAPP:第三章程序的机器级表示2
CSAPP:程序的机器级表示2 关键点:算术.逻辑操作 算术逻辑操作1.加载有效地址2.一元二元操作3.移位操作 算术逻辑操作 如图列出了x86-64的一些整数和逻辑操作,大多数操作分成了指令类( ...
- ASP.NET MVC]WebAPI应用支持HTTPS的经验总结
WebAPI应用支持HTTPS的经验总结 在我前面介绍的WebAPI文章里面,介绍了WebAPI的架构设计方面的内容,其中提出了现在流行的WebAPI优先的路线,这种也是我们开发多应用(APP.微信. ...