ECMAScript 2015规范提到关键字(或单词?)new.target正好3次 - 在14.2.3中 1次:
通常,Contains不会查看大多数函数表单但是,Contains用于检测ArrowFunction中的new.target,this和super用法.
在14.2.16中两次:
ArrowFunction不为arguments,super,this或new.target定义本地绑定.对ArrowFunction中的参数,super,this或new.target的任何引用 都必须解析为词汇封闭环境中的绑定
MDN提到它,但非常模糊,页面不完整.
巴别塔似乎不支持它.尝试在函数(箭头或其他)中使用new.target时出现语法错误.
它是什么,它应该如何使用?
我有一个链接到 .htm 文件的 .js 文件,并且 .js 文件中的唯一代码是以下行:
Object.setPrototypeOf(Object.prototype,{x:616});
Run Code Online (Sandbox Code Playgroud)
在加载 .htm 页面时,“chrome 控制台”显示错误:
Uncaught TypeError: Immutable prototype object '#<Object>' cannot have their prototype set
Run Code Online (Sandbox Code Playgroud)
我以前从未见过此错误,并且无法在此处或在线找到任何相关信息。
我假设该对象已被密封/冻结,因此进行了测试:
console.warn('sealed ?',Object.isSealed(Object.prototype)); // false
console.warn('frozen ?',Object.isFrozen(Object.prototype)); // false
console.warn('extensible ?',Object.isExtensible(Object.prototype)); // true
Run Code Online (Sandbox Code Playgroud)
但这并没有说明问题,因此让我感到困惑。这是有史以来第一次在设置原型时发生这种情况,Object.prototype我是否想知道我的 Chrome 浏览器是否自动更新了新功能或其他什么?