js手写一个call

js手写一个call
/**
 * 手写一个call方法
 * 函数名字为myCall
 * symbol优化
 */
let obj = {
  name: '白衣',
  age: 3,
}
function getYaer (name, age) {
  // console.log('函数内的this',this);
  let nextYear = `${name},明年${age + 1}岁`
  return nextYear
}
Function.prototype.myCall = function (targetObj, ...args) {
  // symbol优化
  let key = Symbol('key')
  targetObj[key] = this
  let resus = targetObj[key](...args)
  delete targetObj[key]
  return resus
}
getYaer.myCall(obj, 'joker', 3)
posted @ 2023-10-14 16:13  jialiangzai  阅读(86)  评论(0)    收藏  举报