php方法调用模式与函数调用模式简例


Posted in PHP onSeptember 20, 2011

现有某函数与对象如下:

var doubling=function(x){ 
return x*2; 
}; 
var obj={ 
val:100, 
};

函数调用模式时,this被绑定到全局对象。这种情况在对象的属性与方法被初始化时也能够得到反应。现为ojb进行补充如下:
var obj={val:100, 
prop:function(){ 
var that=this; 
document.write('name: '+that+'; type: '+typeof(that)+'<br/>'); 
return doublling(that.val); 
}(), 
get_prop:function(){ 
var that=this; 
document.write('name: '+that+'; type: '+typeof(that)+'<br/>'); 
return doublling(that.val); 
}, 
};

prop使用一个被执行的匿名函数,期望取得所在对象的val值被函数调用模式的doubling()运算的结果;而get_prop为方法调用模式。
脚本加载的时候,obj的属性prop初始化时,语句"name: [object Window]; type: object"输出,使用obj.get_prop()时,语句"name: [object Object]; type: object"输出。前者表明函数体的"this"为全局变量window,后者如所期待的为obj本身。
可以检查属性prop和方法get_prop()的返回值,前者对window对象进行乘法运算,返回NaN,后者等于200。
在obj字面量表达式之外,期望设置new_prop属性和new_get_prop()方法,结果将与前文一致,方法调用模式才会获得this对本身的绑定。
PHP 相关文章推荐
php下使用strpos需要注意 === 运算符
Jul 17 PHP
php实现邮件发送并带有附件
Jan 24 PHP
php读取大文件示例分享(文件操作类)
Apr 13 PHP
ThinkPHP后台首页index使用frameset时的注意事项分析
Aug 22 PHP
php数组比较实现查找连续数的方法
Jul 29 PHP
PHP实现搜索相似图片
Sep 22 PHP
学习php设计模式 php实现桥梁模式(bridge)
Dec 07 PHP
thinkPHP统计排行与分页显示功能示例
Dec 02 PHP
Laravel5.* 打印出执行的sql语句的方法
Jul 24 PHP
PHP工厂模式的日常使用
Mar 20 PHP
PHP pthreads v3下的Volatile简介与使用方法示例
Feb 21 PHP
php开发最强大的IDE编辑的phpstorm 2020.2配置Xdebug调试的详细教程
Aug 17 PHP
php若干单维数组遍历方法的比较
Sep 20 #PHP
PHP学习笔记 用户注册模块用户类以及验证码类
Sep 20 #PHP
PHP无刷新上传文件实现代码
Sep 19 #PHP
PHP通过正则表达式下载图片到本地的实现代码
Sep 19 #PHP
PHP下利用shell后台运行PHP脚本,并获取该脚本的Process ID的代码
Sep 19 #PHP
php去除重复字的实现代码
Sep 16 #PHP
PHP与SQL注入攻击防范小技巧
Sep 16 #PHP
You might like
PHP脚本的10个技巧(4)
2006/10/09 PHP
php下通过curl抓取yahoo boss 搜索结果的实现代码
2011/06/10 PHP
PHP错误和异常处理功能模块示例
2016/11/12 PHP
PHP设计模式之装饰器模式定义与用法详解
2018/04/02 PHP
laravel实现登录时监听事件,添加登录用户的记录方法
2019/09/30 PHP
asm.js使用示例代码
2013/11/28 Javascript
Javascript selection的兼容性写法介绍
2013/12/20 Javascript
js调试系列 控制台命令行API使用方法
2014/06/18 Javascript
JavaScript使用Math.Min返回两个数中较小数的方法
2015/04/06 Javascript
javascript实现别踩白块儿小游戏程序
2015/11/22 Javascript
JavaScript笔记之数据属性和存储器属性
2016/03/31 Javascript
浅谈jquery设置和获得checkbox选中的问题
2016/08/19 Javascript
Javascript同时声明一连串(多个)变量的方法
2017/01/23 Javascript
简单实现js倒计时功能
2017/02/13 Javascript
react-native 封装选择弹出框示例(试用ios&amp;android)
2017/07/11 Javascript
详解使用路由延迟加载 Angular 模块
2017/10/12 Javascript
JavaScript实现封闭区域布尔运算的示例代码
2018/06/25 Javascript
JS定义函数的几种常用方法小结
2019/05/23 Javascript
一步一步实现Vue的响应式(对象观测)
2019/09/02 Javascript
JS实现网页时钟特效
2020/03/25 Javascript
Postman参数化实现过程及原理解析
2020/08/13 Javascript
[57:53]DOTA2上海特级锦标赛主赛事日 - 2 败者组第二轮#3OG VS VP
2016/03/03 DOTA
Python2.7基于淘宝接口获取IP地址所在地理位置的方法【测试可用】
2017/06/07 Python
python自定义异常实例详解
2017/07/11 Python
分享Pycharm中一些不为人知的技巧
2018/04/03 Python
python实现彩票系统
2020/06/28 Python
在Python中获取操作系统的进程信息
2019/08/27 Python
浅析python中while循环和for循环
2019/11/19 Python
python实现飞船游戏的纵向移动
2020/04/24 Python
解决Ubuntu18中的pycharm不能调用tensorflow-gpu的问题
2020/09/17 Python
python闭包与引用以及需要注意的陷阱
2020/09/18 Python
女性时尚网购:Chic Me
2019/07/30 全球购物
PHP中如何创建和修改数组
2012/05/02 面试题
瀑布模型都有哪些优缺点
2014/06/23 面试题
大学生个人求职口试自我评价
2014/02/16 职场文书
项目经理任命书内容
2014/06/06 职场文书