今天在和一个腾讯出来的面试官聊天,被问到了几个关于对象和原型的基础问题。用的比较少,所以有些知识就忘记了,晚上重新温故一下。
1.如何获取一个对象的原型对象,或者重新设置一个对象的原型对象?
第一反应想到的是通过_proto_来获取,重新指向新的对象。然而,这个是现代浏览器提供的一个指针对象,而JS提供了这样的方法Object.getPrototypeOf(obj)和Object.setPrototypeOf(obj, proto)
2.如何创建一个原型对象为空的对象?
其实知道上面的setPrototypeOf()方法,就能创建这样的对象
var a = {};
Object.setPrototypeOf(a, null);
或者用JS提供的Object.create(null)也可以创建这样的对象