下述代码的执行结果为() let obj1 = {     name: ‘张三’,     getName() {         return this.name;     } } let obj2 = {     name: ‘李四’,     getName() {         return super.getName();     } } Object.setPrototypeOf(obj2, obj1); console.log(obj2.getName());

区块链毕设网qklbishe.com为您提供问题的解答

下述代码的执行结果为()
let obj1 = {     name: '张三',     getName() {         return this.name;     } }  let obj2 = {     name: '李四',     getName() {         return super.getName();     } }  Object.setPrototypeOf(obj2, obj1); console.log(obj2.getName());

在 ES6 的对象字面量中,使用 `super` 调用原型上的方法时,**该方法中的 `this` 仍然指向当前对象**,而不是原型对象。 在这段代码里: “`js let obj1 = { name: ‘张三’, getName() { return this.name; } }; let obj2 = { name: ‘李四’, getName() { return super.getName(); } }; Object.setPrototypeOf(obj2, obj1); console.log(obj2.getName()); // ? “` 1. `Object.setPrototypeOf(obj2, obj1)` 将 `obj1` 作为 `obj2` 的原型,因此 `obj2.getName` 内部调用 `super.getName()` 实际上是去找 `obj1.getName` 方法。 2. **但**在 JavaScript 中,使用 `super.getName()` 时,虽然 `getName` 方法是从原型对象(`obj1`)上拿到的,但其中的 `this` 依然是 **当前的 `obj2`**。 3. 因此 `obj1.getName` 返回的 `this.name` 实际上是 `obj2` 的 `name` 值 `’李四’`。 也就是说,这里不是把 `this` 替换成了 `obj1`,而是保留了原来的调用者 `obj2` 作为上下文,所以会得到 **"李四"**。
58:02

以上就是关于问题下述代码的执行结果为()
let obj1 = {     name: ‘张三’,     getName() {         return this.name;     } } let obj2 = {     name: ‘李四’,     getName() {         return super.getName();     } } Object.setPrototypeOf(obj2, obj1); console.log(obj2.getName());的答案

欢迎关注区块链毕设网-
web3一级市场套利打新赚钱空投教程

区块链NFT链游项目方科学家脚本开发培训

从业7年-专注一级市场


微信:btc9767
TELEGRAM :https://t.me/btcok9

具体资料介绍

web3的一级市场千万收益的逻辑


进群点我



qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台-javagopython毕设 » 下述代码的执行结果为() let obj1 = {     name: ‘张三’,     getName() {         return this.name;     } } let obj2 = {     name: ‘李四’,     getName() {         return super.getName();     } } Object.setPrototypeOf(obj2, obj1); console.log(obj2.getName());