关于call(this, ...arguments)中的this取值

来源:4-6 vue如何监听数组变化

三玖

2021-02-25

请问oldArrayProperty[methodName].call(this, …arguments)中的this在执行时取值是什么?
知道this取值是在函数执行的时候确定的,但还是有点蒙。
个人理解是指向新定义的原型arrProto.push?和执行时候的nums:[10,20,30]数组是否有关?还是指向的老原型Array.prototype.push自身呢?
图片描述
自己试了下如下图,结果call中的this指向的是实际执行时候的数组对象。
可否理解为新定义的原型方法arrPro.push赋给了下图n对象的隐式原型,执行的时候调用n对象的隐式原型方法(新push),所以执行(新push)的时候call中的this取值是n?
图片描述图片描述

写回答

2回答

witheredisland

2021-02-25

对象调用原型中的方法时,this指向对象本身。

1
0

mrmooc

2021-03-04

this指向的就是通过 Object.create()创建的那个对象 arrProto。

0
0

2024版 前端框架及项目面试 聚焦Vue3/React/Webpack

面向1-3年前端的框架及项目面试“刚需内容”

4663 学习 · 1644 问题

查看课程