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运行时强制显示出错信息的代码
Apr 20 PHP
php模拟socket一次连接,多次发送数据的实现代码
Jul 26 PHP
PHP中设置时区方法小结
Jun 03 PHP
php生成图形验证码几种方法小结
Aug 15 PHP
析构函数与php的垃圾回收机制详解
Oct 28 PHP
PHP按行读取文件时删除换行符的3种方法
May 04 PHP
PHP反向代理类代码
Aug 15 PHP
php实现求相对时间函数
Jun 15 PHP
PHP命名空间namespace用法实例分析
Sep 27 PHP
thinkphp中AJAX返回ajaxReturn()方法分析
Dec 06 PHP
thinkPHP框架整合tcpdf插件操作示例
Aug 07 PHP
PHP设计模式之模板模式定义与用法详解
Dec 20 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
神族 PROTOSS 概述
2020/03/14 星际争霸
MOTOROLA 摩托罗拉 MODEL 66-XI五灯中波收音机
2021/03/02 无线电
Yii框架使用魔术方法实现跨文件调用功能示例
2017/05/20 PHP
PHP结合Vue实现滚动底部加载效果
2017/12/17 PHP
php闭包中使用use声明变量的作用域实例分析
2018/08/09 PHP
启用OPCache提高PHP程序性能的方法
2019/03/21 PHP
JS面向对象、prototype、call()、apply()
2009/05/14 Javascript
javascript 动态修改样式和层叠样式表代码
2010/04/27 Javascript
jQuery插件datepicker 日期连续选择
2015/06/12 Javascript
javascript数组对象常用api函数小结(连接,插入,删除,反转,排序等)
2016/09/20 Javascript
老生常谈原生JS执行环境与作用域
2016/11/22 Javascript
原生js实现键盘控制div移动且解决停顿问题
2016/12/05 Javascript
微信小程序 地图map详解及简单实例
2017/01/10 Javascript
Jquery实时监听input value的实例
2017/01/26 Javascript
微信小程序 生命周期函数详解
2017/05/24 Javascript
vue.js实例todoList项目
2017/07/07 Javascript
angular1配合gulp和bower的使用教程
2018/01/19 Javascript
VUE搭建手机商城心得和遇到的坑
2019/02/21 Javascript
详解javascript设计模式三:代理模式
2019/03/25 Javascript
微信小程序接入腾讯云验证码的方法步骤
2020/01/07 Javascript
jquery向后台提交数组的代码分析
2020/02/20 jQuery
js中addEventListener()与removeEventListener()用法案例分析
2020/03/02 Javascript
[51:29]Alliance vs TNC 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/18 DOTA
python实现的一个火车票转让信息采集器
2014/07/09 Python
pytorch使用Variable实现线性回归
2019/05/21 Python
Python 使用 attrs 和 cattrs 实现面向对象编程的实践
2019/06/12 Python
详解pandas数据合并与重塑(pd.concat篇)
2019/07/09 Python
Django框架下静态模板的继承操作示例
2019/11/08 Python
pandas实现将日期转换成timestamp
2019/12/07 Python
HTML5的结构和语义(2):结构
2008/10/17 HTML / CSS
心得体会怎么写
2013/12/30 职场文书
村党支部书记四风问题个人对照检查材料思想汇报
2014/10/06 职场文书
2015年重阳节活动总结
2015/03/24 职场文书
运动会观后感
2015/06/09 职场文书
2016年小学端午节活动总结
2016/04/01 职场文书
springcloud整合seata
2022/05/20 Java/Android