首页 > 编程知识 正文

usleep函数(JavaScript函数类型)

时间:2023-05-03 07:42:04 阅读:74813 作者:1048

手动实现bind函数的bind函数语法函数内的面向this的原理分析1.bind函数是函数调用,但在js中可以将函数视为对象。 当bind是对象方法时,函数中的this指向该对象本身。 此时,调用this是调用该函数对象2 .对象方法的this是指该对象本身。 因此,bind函数内部的this所指向的函数可以作为bind函数的自变量的对象方法3 .通过原型链,将bind函数作为Function构造函数的对象函数。 所有函数都是从Function函数继承的,所以所有函数都可以调用bind函数,而无需手动分配任何缺陷。 如果有解决方法的话请在评论区告诉我。

bind函数语法

bind ) )方法创建新函数。 调用此新函数时,其this值为bind ) ) )的第一个参数,该参数为bind ) )的其他参数和原始参数。

语法:

当调用fun.bind(thisArg[,arg1[,arg2[, ] ) ) thisarg绑定函数时,此参数被指向为原始函数运行时的this。 使用new操作符调用绑定函数时,将禁用此参数。

arg1、arg2、…可选:调用绑定函数时,这些参数加上绑定函数本身的参数,将按顺序用作原始函数运行时的参数。

例如:

functionfn(a,b,c ) console.log ) this; }var_fn=fn.bind({a:123}; fn (); //输出: window_fn (; //输出: {a:123}函数中的面向this

原理分析1.bind函数是函数调用,但在js中函数可以被视为对象。 当bind是对象方法时,函数中的this指向该对象本身。 此时,调用this就是调用这个函数对象。 例如:

function fun () console.log ) (调用fun ); }functionbind(obj ) console.log ) ) bind中的this: ),this ); if(typeof{ this==='function ' ) this ); }}bind (); //输出: bind的this: windowfun.bind=bind; fun.bind (; //输出:调用1.bind的this: fun 2.fun,2 .对象方法的this指向该对象本身,因此bind函数内部的this指向的函数作为bind函数参数的对象方法

functionbind(obj ) if ) typeofthis==='function ' ) { obj.bindThis=this; return ()={ obj.bindThis; (; }functiontestthis(obj ) console.log('this: ',this ); }var a={ a: 123 }; testThis.bind=bind; varfn=Testthis.bind(a; fn (); //输出: this:(a:123 ) testthis ); //输出: this: Window 3.通过原型链将bind函数作为Function构造函数的对象函数。 因为所有函数都从Function函数继承,所以所有函数都可以调用bind函数,而无需手动分配原型链的概念

功能绑定(obj )控制台. log ) ' this: ',this ); if(typeofthis==='function ' ) { obj.bindThis=this; return ()={ obj.bindThis; (; }functiontestthis(obj ) console.log('this: ',this ); (} //bind ); vara={ a :123 }//testthis.bind=bind; Function.prototype.bind=bind; varb=Testthis.bind(a; b (); //输出: this:(a:123 )缺陷)如果有解决方案,请在评论区告诉我)1.原生的bind函数返回的函数不会改变内容,只是改变其this指向

本机:

此次实现:

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。