JavaScript函数的两种主要调用模式以及原型方法等
2010-10-20 16:59
148 查看
1)方法调用模式
当一个函数作为method绑定到一个对象时,这个function如果作为属性被调用是方法调用模式。方法调用传递this为该对象,所以方法可以通过this来访问对象的属性或者变量。
2)函数调用模式
此时,this被绑定为全局变量。所以注意内部函数的情况,this并不是指的调用此函数的外部函数。
3)原型构造模式,apply调用模式:并不常用不再介绍。
4)JS允许给语言的基本类型增加方法,比如给Number类型增加一个提取整数部分的方法或者String增加trim空字符的函数,这里还写了一个原型方法来弥补float做除法时的bug
当一个函数作为method绑定到一个对象时,这个function如果作为属性被调用是方法调用模式。方法调用传递this为该对象,所以方法可以通过this来访问对象的属性或者变量。
2)函数调用模式
此时,this被绑定为全局变量。所以注意内部函数的情况,this并不是指的调用此函数的外部函数。
var myObj = { value:0; increment:function(inc){ this.value += typeof inc === 'number'?inc:1; } dobule:function(){ var that = this; var helper = function(){ that.value = add(that.value,that.value); } helper(); } }; // method invoke myObj.increment(); //1 myObj.increment(2);//3 // method and Function invoke pattern myObj.double(); //6
3)原型构造模式,apply调用模式:并不常用不再介绍。
4)JS允许给语言的基本类型增加方法,比如给Number类型增加一个提取整数部分的方法或者String增加trim空字符的函数,这里还写了一个原型方法来弥补float做除法时的bug
Function.prototype.method = function(name,func){ if(!this.prototype[name]){ this.prototype[name]=func; } return this; }; Number.method('integer',function(){ return Math(this<0?'celling':'floor')(this); }); String.Method('trim',function(){ return this.replace(/^/s+|/s+$/g,''); }); document.write(-1/2.integer());
Number.prototype.division = function(val2){ var val1 =this; while(parseInt(val1*=10)<1|parseInt(val2*=10)<1); return parseInt(val1)/parseInt(val2); } var num = 0.00007; alert(num.division(10));
相关文章推荐
- Java设计模式(四):原型模式深拷贝的两种实现方式,以及和new对象的性能测试对比
- 浅谈JS函数调用模式,闭包以及bind()方法
- JS两种声明函数的方法以及调用顺序
- js 创建对象的两种主要方法 构造函数 和 原型+构造函数组合
- Struts2调用Action的两种方法以及参数处理
- JavaScript函数调用的四种模式以及this指向
- ListView的观察者模式的应用,以及调用notifyDataSetChanged()方法时,为什么会刷新ListView
- 两种新建线程的简单方法以及懒汉模式中lock的重要性
- c#中两种常用的异步调用方法
- 设计模式C++实现(5)——原型模式、模板方法模式
- 构造函数 的调用的两种方法
- 两种方法实现点击图片调用上传功能
- DLL编程和两种调用方法调用
- golang rpc的两种调用方法
- C#中简单调用MD5方法以及MD5简介
- 关于DDD:管理"工作单元实例"的两种模式的使用方法
- 详解php用curl调用接口方法,get和post两种方式
- 【原】自定义UINavigationItem的两种方法以及相应的隐藏方法
- 原生js jquery ajax请求以及jsonp的调用方法
- HttpWebRequest调用接口的方法两种写法