javascript中对象字面量方式创建对象,不会调用Object构造函数吗?
https://segmentfault.com/q/1010000004139227 和链接中问题有相同的疑惑,第一个答案感觉不是很清晰,有没有牛牛给解答一下
不用new构造器和后来加入的__proto__属性等于原型,如何手动获得一个继承对象? 就是不用new和prototype、也不用__proto__,在js里有没有可能用其他代码模拟实现这种继承和统一修改的效果?即手动生成构造器里那个this对象? 如果不调用构造函数的话,那为什么insatnceof 判断字面量形式的对象返回Object呢,instanceof不就是判断是否是一个对象的实例麽?
var o = {};
o instanceof Object; //true
2 回复
字面量形式的对象默认以Object为原型对象(实际上{}
就是new Object()
)
手动继承
const proto = { a: 123 };
const obj = Object.create(proto);
obj.a; // 123
创建不以Object为原型的对象
const obj = Object.create(null);
obj instanceof Object; // false
详细内容见规范12.2.6.7
@dislido 多谢解答