mozilla

Object.setPrototypeOf()

这篇翻译不完整。请帮忙从英语翻译这篇文章

该特性处于 ECMAScript 6 规范草案中,目前的实现在未来可能会发生微调,请谨慎使用。

概述

设置一个对象的原型(既对象的[[Prototype]]内部属性).

语法

Object.setPrototypeOf(object, prototype)

参数

object
将被设置原型的对象.
prototype
该对象新的原型(可以是一个对象或者null).

描述

如果prototype参数指定的值不是一个对象值或者null(也就是数字,字符串,布尔值以及undefined这其中的一种),就会抛出TypeError异常.

附注

Object.setPrototypeOf()被添加到了最新的ECMAScript 6规范草案中.旧的object.__proto__属性已经被最新的ES6草案废弃,但目前所有的现代浏览器最新版本(包括IE11预览版)已经实现了__proto__.

Polyfill

我们必须借助非标准的 __proto__ 才能实现这个方法.

Object.setPrototypeOf = Object.setPrototypeOf || function (obj, proto) {
  obj.__proto__ = proto;
  return obj; 
}

示例

var dict = Object.setPrototypeOf({},null);

浏览器兼容性

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
Basic support 34
See Issue 2675
31 (31)
See bug 885788
未实现 未实现 未实现
Feature Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support 未实现 未实现 31.0 (31)
See bug 885788
未实现 未实现 未实现

相关链接

文档标签和贡献者

向此页面作出贡献: teoli, ziyunfei
最后编辑者: teoli,