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

做网站徐州wordpress快速登陆插件

做网站徐州,wordpress快速登陆插件,网站架构设计的意义,菏泽做网站的公司一、对象的方法 在一个对象中绑定函数#xff0c;称为这个对象的方法。 示例#xff1a; 1、对象#xff1a; var xiaoming {name: 小明,birth: 1990 }; 2、给xiaoming绑定一个函数。比如#xff0c;写个age()方法#xff0c;返回xiaoming的年龄#xff1a; var x…一、对象的方法 在一个对象中绑定函数称为这个对象的方法。 示例 1、对象 var xiaoming {name: 小明,birth: 1990 }; 2、给xiaoming绑定一个函数。比如写个age()方法返回xiaoming的年龄 var xiaoming {name: 小明,birth: 1990,age: function () {var y new Date().getFullYear();return y - this.birth; // this关键字} };xiaoming.age; // 整个function代码 xiaoming.age(); // 今年调用是25,明年调用就变成26了 绑定到对象上的函数称为方法和普通函数也没啥区别但是它在内部使用了一个this关键字。 二、this关键字 在一个方法内部this是一个特殊变量它始终指向当前对象也就是xiaoming这个变量。所以this.birth可以拿到xiaoming的birth属性。 function getAge() {var y new Date().getFullYear();return y - this.birth; }var xiaoming {name: 小明,birth: 1990,age: getAge // age获取整个getAge这个函数的代码 };xiaoming.age(); // 25, 正常结果 getAge(); // NaN 问题来了单独调用函数getAge()怎么返回了NaN。 因为这个JavaScript的函数内部调用了this而这个this到底指向谁视情况而定 1、如果以对象的方法形式调用比如xiaoming.age()该函数的this指向被调用的对象也就是xiaoming这是符合我们预期的。 2、如果单独调用函数比如getAge()此时该函数的this指向全局对象也就是window。 更坑爹的是如果这么写 var fn xiaoming.age; // 先拿到xiaoming的age函数 fn(); // NaN 也是不行的要保证this指向正确必须用obj.xxx()的形式调用 3、方法重构 use strict;var xiaoming {name: 小明,birth: 1990,age: function () {function getAgeFromBirth() {var y new Date().getFullYear();return y - this.birth;}return getAgeFromBirth();} };xiaoming.age(); // Uncaught TypeError: Cannot read property birth of undefined 结果又报错了 原因是this指针只在age方法的函数内指向xiaoming在函数内部定义的函数this又指向undefined了在非strict模式下它重新指向全局对象window 纠正的方式 1、ECMA决定在strict模式下让函数的this指向undefined因此在strict模式下你会得到一个错误 use strict;var xiaoming {name: 小明,birth: 1990,age: function () {var y new Date().getFullYear();return y - this.birth;} };var fn xiaoming.age; fn(); // Uncaught TypeError: Cannot read property birth of undefined 这个决定只是让错误及时暴露出来治标不治本。 2、方法重构 我们用一个that变量首先捕获this use strict;var xiaoming {name: 小明,birth: 1990,age: function () {var that this; // 在方法内部一开始就捕获thisfunction getAgeFromBirth() {var y new Date().getFullYear();return y - that.birth; // 用that而不是this}return getAgeFromBirth();} };xiaoming.age(); // 25 用var that this;你就可以放心地在方法内部定义其他函数 三、apply方法-控制this的指向 在一个独立的函数调用中根据是否是strict模式this指向undefined或window。 要指定函数的this指向哪个对象可以用函数本身的apply方法。 apply方法接收两个参数第一个参数就是需要绑定的this变量第二个参数是Array表示函数本身的参数。 function getAge() {var y new Date().getFullYear();return y - this.birth; }var xiaoming {name: 小明,birth: 1990,age: getAge };xiaoming.age(); // 25 getAge.apply(xiaoming, []); // 25, this指向xiaoming, 参数为空 四、call方法-控制this的指向 另一个与apply()类似的方法是call()唯一区别是 apply()把参数打包成Array再传入call()把参数按顺序传入。 比如调用Math.max(3, 5, 4)分别用apply()和call()实现如下 Math.max.apply(null, [3, 5, 4]); // 5 Math.max.call(null, 3, 5, 4); // 5 对普通函数调用我们通常把this绑定为null。 五、装饰器 利用apply()我们还可以动态改变函数的行为。 JavaScript的所有对象都是动态的即使内置的函数我们也可以重新指向新的函数。 假定我们想统计一下代码一共调用了多少次parseInt()可以把所有的调用都找出来然后手动加上count 1不过这样做太傻了。最佳方案是用我们自己的函数替换掉默认的parseInt() var count 0; var oldParseInt parseInt; // 保存原函数window.parseInt function () {count 1;return oldParseInt.apply(null, arguments); // 调用原函数 };// 测试: parseInt(10); parseInt(20); parseInt(30); console.log(count count); // 3
http://www.zqtcl.cn/news/191020/

相关文章:

  • 南昌招商网站建设临沂兰山建设局网站
  • 母婴网站建设怎么样可以做网站
  • 二手车 网站开发wordpress 定时 检查
  • 淮南官网济南seo优化外包
  • 沈阳网站建设莫道网络网站建设常用六大布局
  • 网站建设外文版要求网站关键字优化销售
  • 马来西亚做公路投标网站设计网页多少钱
  • 织梦网站多少钱广告多的网站
  • 济南网站建站模板深圳南园网站建设
  • 国家免费技能培训官网白杨seo博客
  • 福州seo网站建设微服务网站
  • 网站宽度 像素长沙电商运营培训
  • 备案上个人网站和企业网站的区别app开发多少钱一个
  • 有限公司网站建设 中企动力佛山培训机构招生方案
  • 扫黄打非网站建设专业的高端网站制作公司
  • 做自媒体发视频用哪些网站江西网站建设哪家好
  • wordpress用户列表南宁百度seo排名优化
  • 做网站时如何写接口文档上海网站设计建设公司
  • 网站小图标怎么制作平面设计素材网站推荐
  • 多元网络兰州网站建设惠州网页建站模板
  • 网站建设中首页模板下载网页制作模板保存
  • 宁夏做网站的江苏网站建设的案例展示
  • 网站功能需求文档如何免费域名注册
  • 推广网站的软件包头移动的网站建设
  • 自己制作音乐的软件免费上海seo怎么优化
  • 学vue可以做pc网站网站站长统计怎么弄
  • 做物流的可以在那些网站找客户大淘客网站建设app
  • 石家庄兼职做网站dedecms做视频网站
  • 优化公司怎么优化网站的网站 意义
  • 唯品会一家专门做特卖的网站手机版招聘网站开发技术维护