当前位置: 首页 > news >正文

c 网站开发 readonly属性wordpress重新定向

c 网站开发 readonly属性,wordpress重新定向,公司网站开发后台代码,网站做图分辨率apply、call、bind的区别? 如何实现一个bind 作用 apply、call、bind 的作用是改变函数执行时的上下文#xff0c;简而言之就是改变函数运行时的 this 指向 那么什么情况下需要改变 this 的指向呢? 下面举个例子 var name lucy; var obj {name: mar…apply、call、bind的区别? 如何实现一个bind 作用 apply、call、bind 的作用是改变函数执行时的上下文简而言之就是改变函数运行时的 this 指向 那么什么情况下需要改变 this 的指向呢? 下面举个例子 var name lucy; var obj {name: martin,say: function () {console.log(this.name);} }; obj.say(); // martin, this 指向 obj 对象 setTimeout(obj.say,0); // lucy, this 指向 window 对象从上面可以看到正常情况 say 方法输出 martin 但是我们把 say 放在 setTimeout 方法中在定时器中是作为回调函数来执行的因此回到主栈执行时是在全局执行上下文的环境中执行的这时候 this 指向 window 所以输出 lucy 我们实际需要的是 this 指向 obj 对象这时候就需要该改变 this 指向了 setTimeout(obj.say.bind(obj),0); // martinthis指向obj对象区别 下面再来看看 apply、call、bind 的使用 apply apply 接受两个参数第一个参数是 this 的指向第二个参数是函数接受的参数以数组的形式传入 改变 this 指向后原函数会立即执行且此方法只是临时改变 this 指向一次 function fn(...args){console.log(this,args); } let obj {myname:张三 } fn.apply(obj,[1,2]); // this会变成传入的obj传入的参数必须是一个数组; fn(1,2) // this指向window当第一个参数为 null、undefined 的时候默认指向 window (在浏览器中) fn.apply(null,[1,2]); // this指向window fn.apply(undefined,[1,2]); // this指向windowcall call 方法的第一个参数也是 this 的指向后面传入的是一个参数列表 跟 apply 一样改变 this 指向后原函数会立即执行且此方法只是临时改变 this 指向一次 function fn(...args){console.log(this,args); } let obj {myname:张三 } fn.call(obj,1,2); // this会变成传入的obj传入的参数必须是一个列表; fn(1,2) // this指向window同样的当第一个参数为 null、undefined 的时候默认指向 window (在浏览器中) fn.call(null,1,2); // this指向window fn.call(undefined,1,2); // this指向windowbind bind方法和call很相似第一参数也是 this 的指向后面传入的也是一个参数列表(但是这个参数列表可以分多次传入) 改变 this 指向后不会立即执行而是返回一个永久改变 this 指向的函数 function fn(...args){console.log(this,args); } let obj {myname: } const bindFn fn.bind(obj); // this也会变成传入的obj bind不是立即执行需要手动执行一次bindFn(1,2) // this指向obj fn(1,2) // this指向window总结 从上面可以看到apply、call、bind三者的区别在 三者都可以改变函数的 this 对象指向。三者第一个参数都是 this 要指向的对象如果没有这个参数或参数为 undefined 或 null 则默认指向全局 window。三者都可以传参但是 apply 是数组而 call、bind 是参数列表且 apply 和 call 是一次性传入参数而 bind 可以分为多次传入。bind 是返回绑定this之后的函数 apply、call 则是立即执行。 实现bind 实现 bind 的步骤我们可以分解成为三部分: 修改 this 指向 动态传递参数 // 方式一: 只在bind中传递函数参数 fn.bind(obj,1,2)()// 方式二: 在bind中传递函数参数也在返回函数中传递参数 fn.bind(obj,1)(2)兼容 new 关键字 整体实现代码如下: Function.prototype.myBind function (context) {// 判断调用对象是否为函数if (typeof this ! function) {throw new TypeError(Error);}// 获取参数const args [...arguments].slice(1),fn this;return function Fn() {// 根据调用方式传入不同绑定值return fn.apply(this instanceof Fn ? new fn(...arguments) : context, args.concat(...arguments));} }
http://www.pierceye.com/news/168668/

相关文章:

  • 上海网站建设的英文wordpress login 图标
  • 雅安市网站建设搭建网站工具
  • 网站如何做301重定向南宁一站网 给网站做营销
  • 网站 使用的字体女生电子商务专业适合做什么
  • 电商网站首页模板连云港 网站 建设
  • 自助建站广告发布企业年检网上申报流程
  • 河北平台网站建设价位外包网站有哪些
  • 做网站客户需要提供的资料梧州网站建设推荐
  • 网站商城建设实训心得网络推广有用吗
  • 考试网站建设房价2024年暴跌
  • 北京网站seo价格建设教育培训的网站
  • 怎样做网站手机和电脑通用木马工业设计公司
  • 榆林市建设局官方网站ppt中网站布局图怎么做
  • 网站视频插件代码如何创建自己的软件
  • 如何免费建造网站电商网站建设哪家好
  • ps做网站首页设计教程郑州seo优化外包热狗网
  • 给网站增加功能怎么做360搜索关键词优化软件
  • 如何做公司网站空间南昌做网站的公司哪个比较好的
  • 美容网站开发网络营销的功能有哪些
  • 推广自己的网站需要怎么做做政协网站的目的是什么
  • 综合性电子商务网站有哪些商城系统软件开发
  • 网站服务器解决方案企业门户网站管理要求
  • 南京网站开发南京乐识专注岳阳网站建设网站
  • 做一直播网站要多少钱淘宝客如何建设推广网站
  • 网站模板内容怎么添加图片不显示菏泽做网站
  • 个人网站备案条件盐城做网站哪家好
  • 小型网站开发教程wordpress自适应小说
  • 来宾网站制作公司网站提交至google
  • 唐山网站建设怎么样专业的个人网站建设哪家
  • 成品网站w灬源码在线看重庆网站制作设计