A JavaScript Fancier

伟大的javascript技术研究中...

  IT博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  304 随笔 :: 0 文章 :: 479 评论 :: 0 Trackbacks

今天做一个项目时在ff下出现了一个异常,清查半天才发现原来是一条小小的方法定义语句导致的。

偶不记得在那看过这么一种方法定义:var $=document.getElementById;  alert($("div1"));
直接将document.getElementById赋给一个变量名就可以把该变量名作为方法引用。的确很妙,不过在ff下就不行了,还是换成var $=function(id){return document.getElementById(id)}比较通用。

唉,都被IE纵容坏了。。。。

posted on 2007-04-26 17:55 Yemoo'S JS Blog 阅读(716) 评论(3)  编辑 收藏 引用 所属分类: javascript技巧总结

评论

# re: FireFox不支持的一种方法定义 2007-04-27 15:48 ;p
不解,莫非是ff的bug?
var $=document.getElementById;

$==document.getElementById;
在ff下面为true  回复  更多评论
  

# re: FireFox不支持的一种方法定义 2007-04-28 08:32 Yemoo'S JS Blog
因为将一个对象传给了$,所以自然会返回true,但是不能使用$()方法实现document.getElementById功能。@;p
  回复  更多评论
  

# re: FireFox不支持的一种方法定义 2007-07-18 14:28 GalaxySong
估计是函数作用域的原因。
比如:
var o = {test: function(s){this.s += ' ' + s; alert(this.s);}, s: 'old'};
o.test('new');
var $test = o.test;
$test('more');
结果:
"old new"
"undefined more"  回复  更多评论
  

只有注册用户登录后才能发表评论。