what happen
使用Object.create
创建对象时,发生以下的一幕
<script>
var obj = Object.create({
name: '123'
})
console.log('obj', obj);
console.log('obj', obj.name);
</script>
当我打印 obj
和 obj.name
时,惊了,结果如下
obj {}
obj 123
obj
的结果居然是空的对象,但是却能拿到 name
属性,奇怪呀
哈哈哈,今天又打印了一下 发现这个 Object.create
创建对象时传递的参数,是建立在原型上的,并不是直接给 obj
加的, 所以 obj
为空,但是也能拿到 name
属性值123
obj {
__proto__: {
name: "123"
__proto__: Object
}
}