只显示主题贴
zbm2001 写道嗯,应该是一个实时调用的getter访问,
表现上的怪异可能是有点,但如果作为arguments的属性,似乎也有不妥的地方。
现在的标准抛弃了它——这个还真不知道,csf178 能否详细点说明一下?
如果已不是标准,再讨论这个caller的价值就不大了。
还有,如果已不是标准,有什么好的代替方法获取这个caller呢……
比如像我在4#楼给出的示例。
我的标题都明确了不标准不兼容,纯属讨论的.所以价值问题不是基于浏览器和标准的,是基于用途的.
首先我认为,arguments这个运行期设施是很有价值的,但是把caller附在arguments.callee.calle ...
- 进入论坛 AJAX 版
zbm2001 写道这是另外一个浏览器实现方法的细节问题了,注意下就是了
还有,不知道你要delete它干什么?
因为caller 仿冒了,如果可以delete的话,那么真正的caller就会恢复.
这样相当于无副作用的一次传入了两caller,
至于怎么用,有什么用是应用的问题,设计考虑的是模式,应用是千变万化的.可惜不标准,不兼容.
- 进入论坛 AJAX 版
zbm2001 写道IE/FF/safari等几大浏览器引擎都支持,
就opera不支持,最新的9.51仍然是这样。
“看似多余的丑陋的怪异的方法”这个观点不太同意,特别是基于W3C事件模型的事件对象捕捉。若不是opera也有个window.event对象,稍微复杂点的DOM事件函数还真是有点麻烦。要不然,多层函数调用获取事件对象时,每层都得对事件对象传参。
delete arguments.callee.caller;
IE就不支持,FF支持,其他的没有测试.
这个方法是我自己想出来的,因为连IE都不支持,当然只能说是:看似多余的丑陋的怪异的方法了
- 进入论坛 AJAX 版
csf178 写道caller非标准 Opera不支持 没了
根据ECMA-262 Section 10.1.8的规定⋯⋯
那用了caller就会造成兼容性问题,官方在新版里有可能增加支持么?
貌似 ECMA-262-4 要增加,不过谁知道到哪年了
- 进入论坛 AJAX 版
首先,我不知道这个方法能怎么应用,仅仅知道这是一种无副作用的方法(虽然看似多余的丑陋的怪异的方法,),而且有浏览器兼容性问题,不知道ecma-262是如何定义caller的.
function foo(s){
if (!s){
f.caller=function(s){alert('ya......'+s)};
f();
}else
alert(s);
}
function f(){
var caller=arguments.callee.caller;
delete arguments.callee.caller;
argum ...
- 进入论坛 AJAX 版
gui1401 写道好象并不能解决我的问题,因为我的问题本身是有问题的,无法解决,你的想法很好,应该对于其他问题很有用
我正在写的nicEdit 打包器
用的就是这个方法+jCT做的,现在还没有做完,感兴趣可以看看,有实例参考也许会对你有启发.
源文件目录
http://ne.16lo.com/src/nicEditor/
achun.html就是jCT模板,
src/nicEditor/src 目录是nicEditor的源文件
_.php是入口文件,不允许浏览器访问,内容如下:
foreach ($AQ as $Q=>$P){
switch ($Q){
case 'entry' ...
- 进入论坛 AJAX 版
nicEdit 源码组织很有规律从src目录开始看,
nicAdvancedButton
nicBBCode
nicButtonTips
nicCode
nicColors
nicCore
nicImage
nicLink
nicPane
nicSelect
nicUndo
nicXHTML
nicLicense.js
里面除了一个nicLicense.js
是个文件,其他的都是目录,而这个nicLicense.js其实就是一段版权的声明.
如果继续看每个子目录内容的话,你会发现一个规律:
每个目录下都有一个和目录名称一致的 ...
- 进入论坛 AJAX 版
笨笨狗 写道要研究ext源码,你必须同时精通js、css,呵呵
对于我这种轮子工来说,截ext的图,然后自个儿造一个同样的玩意儿并不是难事,而且,是常事,哈哈哈哈
对于偶这种轮子工来说,连图都不截,搭建好结构,表现直接给专业的css同事了,偶只负责造轮子,不管装轮胎
- 进入论坛 AJAX 版
- 浏览: 4805 次
- 性别:

- 来自: 河南郑州

- 详细资料
搜索本博客
最近加入圈子
最新评论
-
无污染的 JavaScript 对象 ...
几点:1. Array、Function、RegExp等是不能被继承的,因为有些 ...
-- by hax -
caller 仿冒,有浏览器兼 ...
Function.caller现在的定义显然有一个问题,就是无法支持一个函数在调 ...
-- by hax -
caller 仿冒,有浏览器兼 ...
为什么要知道每个函数对象execution context对应的调用函数,如果非 ...
-- by afcn0 -
caller 仿冒,有浏览器兼 ...
zbm2001 写道arguments是运行期的这个一点没错,但是我相信规范制定 ...
-- by csf178 -
caller 仿冒,有浏览器兼 ...
arguments是运行期的这个一点没错,但是我相信规范制定者不会看不到这点的。 ...
-- by zbm2001






评论排行榜