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 相关文章推荐
生成缩略图
Oct 09 PHP
PHP下用rmdir实现删除目录的三种方法小结
Apr 20 PHP
使用JSON实现数据的跨域传输的php代码
Dec 20 PHP
mysql总结之explain
Feb 27 PHP
PHP和.net中des加解密的实现方法
Feb 27 PHP
php防止SQL注入详解及防范
Nov 12 PHP
用Zend Studio+PHPnow+Zend Debugger搭建PHP服务器调试环境步骤
Jan 19 PHP
PHP程序员常见的40个陋习,你中了几个?
Nov 20 PHP
php判断对象是派生自哪个类的方法
Jun 20 PHP
CodeIgniter配置之routes.php用法实例分析
Jan 19 PHP
php如何控制用户对图片的访问 PHP禁止图片盗链
Mar 25 PHP
PHP实现负载均衡的加权轮询方法分析
Aug 22 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
Windows和Linux中php代码调试工具Xdebug的安装与配置详解
2014/05/08 PHP
PHP使用CURL_MULTI实现多线程采集的例子
2014/07/29 PHP
php制作简单模版引擎
2016/04/07 PHP
Laravel框架实现利用中间件进行操作日志记录功能
2018/06/06 PHP
获取任意Html元素与body之间的偏移距离 offsetTop、offsetLeft (For:IE5+ FF1 )[
2006/12/22 Javascript
JQUERY获取form表单值的代码
2010/07/17 Javascript
JQuery中$之选择器用法介绍
2011/04/05 Javascript
Extjs中使用extend(js继承) 的代码
2012/03/15 Javascript
javascript实现表单提交后,提交按钮不可用的方法
2015/04/18 Javascript
node.js调用C++开发的模块实例
2015/07/03 Javascript
javascript自动切换焦点控制效果完整实例
2016/02/02 Javascript
jQuery中的Deferred和promise 的区别
2016/04/03 Javascript
canvas实现图像截取功能
2017/02/06 Javascript
JS实现对json对象排序并删除id相同项功能示例
2018/04/18 Javascript
layui点击数据表格添加或删除一行的例子
2019/09/12 Javascript
JS实现简单的表格增删
2020/01/16 Javascript
react 不用插件实现数字滚动的效果示例
2020/04/14 Javascript
Vue用mixin合并重复代码的实现
2020/11/27 Vue.js
python获得图片base64编码示例
2014/01/16 Python
Python模拟登录的多种方法(四种)
2018/06/01 Python
python文字和unicode/ascll相互转换函数及简单加密解密实现代码
2019/08/12 Python
Python tkinter模版代码实例
2020/02/05 Python
python 30行代码实现蚂蚁森林自动偷能量
2021/02/08 Python
css3动画鼠标放上图片逐渐变大鼠标离开图片逐渐缩小效果
2021/01/27 HTML / CSS
香港太阳眼镜网上商店:SmartBuyGlasses香港
2016/07/22 全球购物
Space NK美国站:英国高端美妆护肤商城
2017/05/22 全球购物
ALDI奥乐齐官方海外旗舰店:德国百年超市
2017/12/27 全球购物
会议开场欢迎词
2014/01/15 职场文书
关于圣诞节的广播稿
2014/01/26 职场文书
节约电力资源的建议书
2014/03/12 职场文书
个人委托书格式
2014/04/04 职场文书
毕业生求职信
2014/06/10 职场文书
学习雷锋标语
2014/06/25 职场文书
入党转正申请报告
2015/05/15 职场文书
2015年国培研修感言
2015/08/01 职场文书
django项目、vue项目部署云服务器的详细过程
2022/07/23 Servers