call
我们先来看个例子
function Product(name, price) {
this.name = name;
this.price = price;
}
function Food(name, price) {
Product.call(this, name, price);
this.category = 'food';
}
console.log(new Food('cheese', 5).name);
// expected output: "cheese"
Function.prototype.call = function(context) {
context = context ? Object(context) : window;
context.fn = this;
let args = [];
for(let i = 1; i < arguments.length; i++){
args.push(arguments[i])
}
let res = eval(`${context.fn(args)}`)
delete context.fn;
return res
}
最后更新于
这有帮助吗?