call、apply、bind函数内部实现是怎么样的
/* 参数, 调用函数, 返回值, */ Function.prototype.myCall = function (obj, ...args) { if (typeof this !== 'function') { throw new Error('not a function') } const that = obj || window; that.fn = this; const result = that.fn(...args); delete that.fn; return result; } Function.prototype.myApply = function (obj, arr = []) { if (typeof this !== 'function') { throw new Error('not a function') } const that = obj || window; that.fn = this; const result = that.fn(...arr); delete that.fn; return result; } function test(...jobs) { this.job = jobs; console.log(this); return this.age; }; let obj = { name: 'lisa', age: 12 }; var arr = ['job', 'gender'] const a = test.myCall(obj); const b = test.myApply(obj, arr); console.log(a, b); 为什么0.1 + 0.2 != 0.3 如何解决;