JavaScript中this对象的绑定
来源:互联网 发布:java流行开源框架 编辑:程序博客网 时间:2024/05/29 15:15
调用一个函数将暂停当前函数的执行,传递控制权和参数给新函数。除了声明时定义的形式参数,每个函数接受两个附加的参数:this和arguments 。参数 this 在面向对象编程中非常重要,它的值取决于调用的模式。在JavaScript中一共有四种调用模式:方法调用模式、函数调用模式、构造器调用模式和apply调用模式。
1.方法调用模式
当一个方法被调用时,this被绑定到该对象。
var color='green';var obj={color: 'blue',sayColor: function(){return this.color;}};document.write(obj.sayColor());//blue 一个方法被调用时,this被绑定到该对象document.write(this.color);//green
2.函数调用模式
当一个函数并非一个对象的属性时,那么它被当作一个函数来使用。
var sum=add(3,4);//7
当函数以此模式调用时,this被绑定到全局对象。这是一个语言设计上的错误。倘若语言设计正确,当内部函数被调用时,this 变量应该被绑定到外部函数的this变量。
var value=1; obj.value=5;obj.add=function(){ var help=function(){this.value=add(this.value,1); }; help();};obj.add();document.write(value);//2
解决方案为暂时保存外部函数的this值
obj.add=function(){ var that=this; var help=function(){that.value=add(that.value,1); }; help();};obj.add();document.write(obj.value);//6
3.构造器调用模式
var Fun=function(string){this.name=string;};Fun.prototype.getName=function(){return this.name;}var obj=new Fun('michael');document.write(obj.getName());//michael
4.Apply调用模式
apply方法让我们构造一个参数数组并用其去调用函数。它也允许我们选择this的值。appl接收两个参数。第一个是将被绑定的this的值。第二个就是一个参数数组。
阅读全文
0 0
- JavaScript中this对象的绑定
- javascript中this值绑定
- javascript 中 this 对象
- Javascript中this对象的解释
- javascript中this对象的指向问题
- JavaScript 的this对象
- Javascript中this对象详解
- javascript对象中this问题
- PHP中this的绑定
- javascript的动态this与动态绑定
- Javascript对象中关于setTimeout和setInterval的this介绍
- JavaScript this对象,绑定事件。创建标签,删除标签
- JavaScript中几个特殊的对象:window对象、this对象、global对象
- JavaScript中几个特殊的对象:window对象、this对象、global对象
- 【js学习之路】事件绑定函数中,将this换成调用对象导致的问题
- JavaScript中This到底指哪个对象?
- JS/JavaScript中 this 关键字对象详解
- v8 JavaScript中绑定c++对象
- python数据结构
- Unity3D的Android移动之路----了解触控
- Spring--IoC--基于注解的DI-@Component相关注解
- 通信系统仿真速成第6天:OFDM基带仿真(简单教学版)
- 对纯for循环进行并行流和线程池优化简记
- JavaScript中this对象的绑定
- 什么是函数式编程
- nasm汇编中的宏定义
- Kotlin 自动跳转Activity
- Crontab定时任务入门教程,实战例子
- 实现WebRTC的几个想法
- centos7/centos6装redis
- canvas动画粒子
- [iOS 带三角弹出框的绘制]