ES-14 种对象操作方法
1.获取原型
javascript
const obj = { a: 1, b: 2 };
const proto = Object.getPrototypeOf(obj);
console.log(proto);
console.log(obj.__proto__);
console.log(Object.prototype);const obj = { a: 1, b: 2 };
const proto = Object.getPrototypeOf(obj);
console.log(proto);
console.log(obj.__proto__);
console.log(Object.prototype);2.设置原型
javascript
const obj = { a: 1, b: 2 };
Object.setPrototypeOf(obj, { c: 3, d: 4 });
console.log(obj.__proto__);const obj = { a: 1, b: 2 };
Object.setPrototypeOf(obj, { c: 3, d: 4 });
console.log(obj.__proto__);3.获取对象的可扩展性
javascript
const obj = { a: 1, b: 2 };
const isexensible = Object.isExtensible(obj);
console.log(" isexensible: ", isexensible);const obj = { a: 1, b: 2 };
const isexensible = Object.isExtensible(obj);
console.log(" isexensible: ", isexensible);4.获取自有属性
javascript
const obj = { a: 1, b: 2 };
Object.getOwnPropertyNames(obj);
console.log(
"Object.getOwnPropertyNames(obj): ",
Object.getOwnPropertyNames(obj)
);const obj = { a: 1, b: 2 };
Object.getOwnPropertyNames(obj);
console.log(
"Object.getOwnPropertyNames(obj): ",
Object.getOwnPropertyNames(obj)
);5.禁止扩展对象
javascript
const obj = { a: 1, b: 2 };
Object.preventExtensions(obj);
obj.c = 3;
console.log(obj); // {a:1.b:2}const obj = { a: 1, b: 2 };
Object.preventExtensions(obj);
obj.c = 3;
console.log(obj); // {a:1.b:2}6.拦截对象操作
javascript
Object.defineProperty();Object.defineProperty();7.判断是否为自身属性
javascript
const obj = { a: 1 };
console.log(obj.hasOwnProperty("a")); // trueconst obj = { a: 1 };
console.log(obj.hasOwnProperty("a")); // true8.[[GET]]
javascript
const obj = { a: 1 };
console.log(a in obj);
console.log(obj.a);const obj = { a: 1 };
console.log(a in obj);
console.log(obj.a);9.[[SET]]
javascript
const obj = { a: 3 };
obj.a = 4;const obj = { a: 3 };
obj.a = 4;10.delete
javascript
const obj = { a: 1 };
delete obj.a;const obj = { a: 1 };
delete obj.a;11.Enumerate
javascript
const obj = { a: 1, b: 2 };
for (key in obj) {
console.log(obj[key]);
}const obj = { a: 1, b: 2 };
for (key in obj) {
console.log(obj[key]);
}12.获取键集合
javascript
const obj = { a: 1, b: 2 };
let a = Object.keys(obj); // ['a','c']
console.log(obj);
console.log(a[0]);const obj = { a: 1, b: 2 };
let a = Object.keys(obj); // ['a','c']
console.log(obj);
console.log(a[0]);13.函数调用
javascript
const obj = { a: "i am is a obj" };
var a = "globalContext";
function fn() {
console.log(this.a);
}
fn(); // globalContext
obj.fn = fn;
obj.fn(); // i am is a objconst obj = { a: "i am is a obj" };
var a = "globalContext";
function fn() {
console.log(this.a);
}
fn(); // globalContext
obj.fn = fn;
obj.fn(); // i am is a obj14.new
javascript
function Person() {}
const person1 = new Person();function Person() {}
const person1 = new Person();