call,apply简单的模拟和实现
来源:互联网 发布:个性头像制作软件 编辑:程序博客网 时间:2024/06/03 17:39
•每一个函数都包含两个非继承而来的方法:call、apply。这俩个方法的用途都是在特定的作用域中调用函数,实际上等 于设置函数体内this对象的值。
•call、apply的用途之一就是传递参数,但事实上,它们真正强大的地方式能够扩充函数赖以运行的作用域。
•使用call()、aplly()来扩充作用域的最大好处就是对象不需要与方法有任何耦合关系。
//call apply简单的用法,绑定一些函数,用于传递参数 调用 function test(a,b){ return a + b; } function testcall(num1,num2){ //将test函数绑定到当前的函数上,我要使用test方法 return test.call(this,10,20); } function testapply(num1,num2){ return test.apply(this,[num1,num2]); } console.log(testapply(10,20)); //扩充作用域 window.color = 'red'; var obj = {color:'blue'}; var obj2 = {color : 'yellow'}; function showColor(){ console.log(this.color); } //使作用域不断的变化,根据你传递的参数不同,绑定的作用域也不同 showColor.call(this); //red showColor.call(obj); //blue //call方法的简单模拟与实现 function test(a,b){ return a + b; } //首字母大写是约定俗成的方式定义对象 function Obj(x,y){ //内部定义一个x。y this.x = x; this.y = y; return x * y; } var o = new Obj(10,20); //内部一个简单的实现 o.method = test; console.log(o.method(o.x,o.y)); delete o.method; console.log(test.call(o,o.x,o.y));
0 0
- call,apply简单的模拟和实现
- 10.JavaScript深入之call和apply的模拟实现
- JavaScript 之 call和apply,bind 的模拟实现
- call,apply,bind,new的模拟实现
- 函数apply和call的简单例子
- js深入之call、apply和bind模拟实现
- javascript之call和apply的简单用法
- javascript中:call、apply和 bind的简单使用方法
- js 模拟call, apply的this替换
- CALL 和 APPLY 的学习
- call和apply的异同
- javascript的call()和apply()
- apply和call的用法
- javascript的call和apply
- apply 和call的用法
- apply 和call的用法
- call和apply的区别
- call 和 apply 的认识
- 逆向工程之表达式优化识别(1)-加减法
- Android--启动另一个Activity并返回结果
- TabLayout应用
- Strcpy,memcpy函数的内存重叠
- java实现栈
- call,apply简单的模拟和实现
- XML的解析和XML字符串互转的方法
- ORA-01109 错误
- CMake Error at cmake/readline.cmake:83(MESSAGE):Curses library not found.
- cookie,localStorage,sessionStorage三者的联系
- C#实现winform下图片的上传预览保存以及在桌面应用系统的应用
- C语言练习题每练 5 对于一个字符串,找到第一次重复出现的字符。
- 我对MVC和MVP的一些理解
- 匹配电话号码是不是有效