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 文件扩展名 获取函数
Jun 03 PHP
DedeCMS 核心类TypeLink.class.php摘要笔记
Apr 07 PHP
PHP __autoload函数(自动载入类文件)的使用方法
Feb 04 PHP
解决FastCGI 进程超过了配置的活动超时时限的问题
Jul 03 PHP
php配置php-fpm启动参数及配置详解
Nov 04 PHP
php使用pdo连接报错Connection failed SQLSTATE的解决方法
Dec 15 PHP
ThinkPHP进程计数类Process用法实例详解
Sep 25 PHP
php curl模拟post请求和提交多维数组的示例代码
Nov 19 PHP
PHPCMS2008广告模板SQL注入漏洞修复
Oct 11 PHP
thinkphp自定义权限管理之名称判断方法
Apr 01 PHP
laravel实现分页样式替换示例代码(增加首、尾页)
Sep 22 PHP
Yii框架响应组件用法实例分析
Sep 04 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
PHP4之COOKIE支持详解
2006/10/09 PHP
php中经典方法实现判断多维数组是否为空
2011/10/23 PHP
CodeIgniter图像处理类的深入解析
2013/06/17 PHP
从零开始学YII2框架(二)通过 Composer 安装扩展插件
2014/08/20 PHP
用js得到网页中所有的div的id
2020/10/19 Javascript
写的htc的数据表格
2007/01/20 Javascript
javascript 特殊字符串
2009/02/25 Javascript
解析使用JS 清空File控件的路径值
2013/07/08 Javascript
再分享70+免费的jquery 图片滑块效果插件和教程
2014/12/15 Javascript
JavaScript类型系统之正则表达式
2016/01/05 Javascript
BootStrap+Angularjs+NgDialog实现模式对话框
2016/08/24 Javascript
JS 获取HTML标签内的子节点的方法
2016/09/21 Javascript
jQuery鼠标事件总结
2016/10/13 Javascript
JS+HTML5实现的前端购物车功能插件实例【附demo源码下载】
2016/10/17 Javascript
javascript 实现文本使用省略号替代(超出固定高度的情况)
2017/02/21 Javascript
vue+axios实现登录拦截的实例代码
2017/05/22 Javascript
关于express与koa的使用对比详解
2018/01/25 Javascript
React组件refs的使用详解
2018/02/09 Javascript
vue中rem的配置的方法示例
2018/08/30 Javascript
Angular中使用ng-zorro图标库部分图标不能正常显示问题
2019/04/22 Javascript
CKeditor富文本编辑器使用技巧之添加自定义插件的方法
2019/06/14 Javascript
JS实现继承的几种常用方式示例
2019/06/22 Javascript
VUE的history模式下除了index外其他路由404报错解决办法
2019/08/21 Javascript
Vue的data、computed、watch源码浅谈
2020/04/04 Javascript
Vue如何实现变量表达式选择器
2021/02/18 Vue.js
Python Opencv实现图像轮廓识别功能
2020/03/23 Python
python图片剪裁代码(图片按四个点坐标剪裁)
2020/03/10 Python
python logging通过json文件配置的步骤
2020/04/27 Python
详解canvas绘制多张图的排列顺序问题
2019/01/21 HTML / CSS
UNDONE手表官网:世界领先的定制手表品牌
2018/11/13 全球购物
个人近期表现材料
2014/02/11 职场文书
绩效管理实施方案
2014/03/19 职场文书
大专生求职信
2014/06/29 职场文书
社区党员公开承诺书
2014/08/30 职场文书
Nginx + consul + upsync 完成动态负载均衡的方法详解
2021/03/31 Servers
详细谈谈JavaScript中循环之间的差异
2021/08/23 Javascript