(2)Javascript之函数的多种调用方式
2016-12-29 20:21
477 查看
引言
函数的使用
1 函数的正常使用
2将函数当作类来使用
3将函数当作方法来使用类无返回值
4将函数当作方法来使用类有返回值
this关键字
函数的最后一种调用方式
上面这种函数的使用方式,是最常见的。先定义一个函数,然后调用
此处是将函数当作类来使用
类有返回值和没有返回值的区别在于:将this._show()私有化了,然后暴露了一个访问接口show()方法。
函数被调用时是被a调用的,所以show中的this也就是MyClass的实例,所以弹出5。
然后我们看第二个实例
注意:当b调用的时候,是在window环境下调用的,所以当调用b(也就是调用show函数),此时this代表window,所以弹出的是10.
上面利用call或者apply控制函数b调用时,函数内部的this环境为a,所以弹出为5.
函数的使用
1 函数的正常使用
2将函数当作类来使用
3将函数当作方法来使用类无返回值
4将函数当作方法来使用类有返回值
this关键字
函数的最后一种调用方式
1.引言
在javascript中函数对象是一个非常特殊的对象,在js中函数的使用也是相当的频繁,所以了解函数的一些用法也是非常有必要的,在本篇博客中就先介绍一下函数的几种用法。2.函数的使用
2.1 函数的正常使用
代码var b=function() { alert(1); } //或者 function b() { alert(1); } //调用时 b();
上面这种函数的使用方式,是最常见的。先定义一个函数,然后调用
2.2将函数当作类来使用
代码function MyClass() { //此处写代码 }; var a=new MyClass();//函数的第二种调用方式
此处是将函数当作类来使用
2.3将函数当作方法来使用(类无返回值)
代码function MyClass() { this._show=function(){ alert("1") } }; var a=new MyClass(); a._show();
a.show()是将show当作类中的一个方法使用,此处注意函数与方法的区别,注意类MyClass是没有返回值的,缺点:假设_show是私有方法,外界还是可以被访问到
2.4将函数当作方法来使用(类有返回值)
function MyClass() { this._show=function(){ alert("1") }; return { show:this._show } }; var a=new MyClass(); a.show();
类有返回值和没有返回值的区别在于:将this._show()私有化了,然后暴露了一个访问接口show()方法。
3.this关键字
在js中this的使用相当灵活(在使用this的时候一定要慎用),总的来说:this指的是调用函数的那个对象。比如:var c=10; function MyClass() { this.c=5 this.show=function(){ alert(this.c); } }; var a=new MyClass(); a.show();//弹出5
函数被调用时是被a调用的,所以show中的this也就是MyClass的实例,所以弹出5。
然后我们看第二个实例
var c=10; function MyClass() { this.c=5; this.show=function(){ alert(this.c) }; }; var a=new MyClass(); var b=a.show; b();//弹出10
注意:当b调用的时候,是在window环境下调用的,所以当调用b(也就是调用show函数),此时this代表window,所以弹出的是10.
4.函数的最后一种调用方式
在上面我们可以看到this是非常灵活的,或许在不经意的时候,this的指向就改变了,这对于程序来说是非常危险的,函数的最后一种调用方式,便是控制this的指向,我们通过apply,或者call来调用函数var c=10; function MyClass() { this.c=5; this.show=function(){ alert(this.c) }; }; var a=new MyClass(); var b=a.show; b.call(a);//弹出5 b.apply(a);//弹出5
上面利用call或者apply控制函数b调用时,函数内部的this环境为a,所以弹出为5.
相关文章推荐
- JavaScript中具名函数的多种调用方式(2)
- JavaScript中具名函数的多种调用方式总结
- JavaScript中具名函数的多种调用方式总结
- JavaScript中具名函数的多种调用方式(1)
- Javascript中四种函数调用方式
- JavaScript 与jquery 之间不同的函数调用方式
- JavaScript 中7种函数调用方式及对应this值
- Javascript中匿名函数的多种调用方式
- JavaScript实现二级、多级(N级)联动下拉列表框更新版,支持IE6,FireFox,函数和类两种调用方式,支持到N级,非常通用。
- JavaScript中七种函数调用方式及对应 this 的含义
- JavaScript中七种函数调用方式及对应 this 的含义
- javascript 具名函数的四种调用方式 推荐第1/3页
- Javascript中匿名函数的多种调用方式总结
- Javascript中匿名函数的多种调用方式
- Javascript中匿名函数的多种调用方式
- JavaScript中七种函数调用方式及对应 this 的含义
- JavaScript实现二级、多级(N级)联动下拉列表框更新版,支持IE6,FireFox,函数和类两种调用方式,支持到N级,非常通用。
- javascript 具名函数的四种调用方式 推荐第1/3页
- Javascript中匿名函数的多种调用方式
- javascript多种继承方式(函数式,浅复制,深复制,函数绑定和借用)