关于 Object.getPrototypeOf 和 Object._proto_
代码:
<script>
function Dog(){}
var dog = new Dog();
var dog1 = Object.create(dog);
// console.log(dog1._proto_);
console.log(Object.getPrototypeOf(dog1));
</script>
代码中用Object.create的办法创建了实例dog1,那么dog1这个实例的原型应当是dog。但是实际测试的时候遇到了两个问题:
- console.log(dog1._proto_) 输出的是undefined,我百度之后看到很多说法说_proto_是非标准的用法,在es6之后才被纳入标准,不建议使用,但是浏览器(我用的是最新版的chrome)应该是可以解析的才对,为什么会输出undefined呢?
2.于是我改用getPrototypeOf,但是输出的也不是dog1的原型dog,而是构造函数Dog。
对上面两点比较疑惑,求解
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
1.首先使用的是__proto__访问原型(两个下划线)
2.使用var dog1 = Object.create(dog),表示创建一个对象并且该对象的原型指向dog对象,因此执行Object.getPrototypeOf(dog1)获取的是dog对象