1:Object.create()用法
使用现有对象创建包含它的新对象,将该对象分配给新对象的原型上。
let obj = {
name:'anny'
}
let newObj = Object.create(obj);
console.log(newObj.name). //输出:anny
注意清单:
- 第一个参数只能是Object类型或者null,否则会报错
- 第二个参数是可选的,类似于 Object.defineProperties 的第二个参数。
let obj = {
name:'anny'
}
let newObj = Object.create(obj,{
name:{
value:"tony",
writable:true //是否可写
}
});
console.log(newObj.name) //输出tony
2:Object.create()原理规范
2.1:规范
- 判断是否为Object或者null
- 创建一个新对象
- 将新对象的原型指向传入的对象
- 判断第二个参数Properties为真
- 返回新创建的对象
2.2:实现
function myCreate(obj,Properties){
//判断是否为Object或者null
if(!(obj instanceof Object)&&obj!==null){
throw TypeError
}
//创建一个新对象(等价于new Object())
let newObj = {}
//将新对象的原型指向传入的对象
newObj.__proto__ = obj;
//如果第二个参数Properties为真
if(Properties&&Properties!==undefined){
Object.defineProperties(newObj,Properties)
}
//返回新创建的对象
return newObj;
}
未经本人同意请勿转载
本文详细介绍了JavaScript的Object.create()方法,包括其用法和原理。通过示例展示了如何使用Object.create()创建新对象并设置属性。同时,解释了Object.create()的规范和内部实现,帮助读者深入理解这一核心概念。

1715

被折叠的 条评论
为什么被折叠?



