Function.prototype.myCall = function(context) {
if (context === null || context === undefined) {
context = window
}
context.fn = this
const args = Array.from(arguments).slice(1)
const result = context.fn(...args)
delete context.fn
return result
}
function A(a, b) {
this.a = a
this.b = b
return {
a: a,
b: b
}
}
A.myCall(null, 1, 2)
Function.prototype.myApply = function(context, arr = []) {
if (context === null || context === undefined) {
context = window
}
context.fn = this
const args = arr
const result = context.fn(...args)
console.log(result)
delete context.fn
return result
}
function A(a, b) {
this.a = a
this.b = b
return {
a: a,
b: b
}
}
A.myApply(null, [1, 2])
Function.prototype.myBind = function(context) {
if (context === null || context === undefined) {
context = window
}
context.fn = this
let args = Array.from(arguments).slice(1)
return function() {
args = [...args, ...arguments]
return context.fn.apply(context, args)
}
}
var obj1 = {
a: 1,
b: 2
}
var obj2 = {
a: 3,
b: 4
}
var obj3 = {
a: 5,
b: 6
}
function B() {
console.log(arguments)
console.log(this.a)
}
B.bind(obj1, 1, 2).bind(obj2, 3, 4).bind(obj3)(5, 6)
B.myBind(obj1, 1, 2).myBind(obj2, 3, 4).myBind(obj3)(5, 6)
call apply bind
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...