注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

网易邮箱前端技术中心

汇聚最新最劲爆的前端技术

 
 
 

日志

 
 
 
 

【Javascript Trick系列】一、序章  

2013-09-13 10:30:41|  分类: javascript |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
首先不得不说,前端攻城师是幸福和痛苦的。 幸福的是,编写的代码可以在世界上任何一个有浏览器的电脑上无拘无束地驰骋;痛苦的是世界上有太多太多的浏览器,且浏览器的更新迭代又无法控制地汹涌而来,最郁闷的是该遗留在历史洪流中的浏览器先烈们,却总是要死不活地坚挺在互联网的世界中。

过往,我们常常说IE浏览器这个不好,那个不好的。其实再回过头看10多年前,从来没有人说IE这个不好,因为当时只需要对IE一款浏览器做好了就可以了。而现在需要兼容的浏览器多了,不同浏览器之间的特性不一样,然后IE因为种种原因不能成为前端工程师们的首选开发环境,后续很多时候就不得不为这种不一致的特性做很多的兼容,所以才有了上面的抱怨。

于是有了下面的想法,我们抛弃对某种浏览器的偏见,采取中立的角度,只研究不同浏览器之间的异同点,帮助前端攻城师们少走弯路。

在这里,欢迎大家踊跃投稿,投稿形式不限,可以通过以下方式联系:
1. 发邮件到 gzluochenghang@corp.netease.com
2.  私信 @网易邮箱前端技术中心


---------------------------------------------------------------   专属分割线  ------------------------------------------------------------------

好了,先说说第一个Trick。先来看看下面的例子

var z = function () {};
z.name = 'netease';

console.log(z.name);

好了,上面的输出结果是什么?   "netease" ? 

如果回答是“netease”,那么你对了一半。因为在chrome浏览器中, function的name属性是保留的,不允许更改的,所以返回值""(空字符串)。而在IE中,就是“netease”这个结果了。

再看下面的例子,

z.prototype.name = 'mail';

var y = new z();

console.log(y.name);

输出结果是什么? 没错,是"mail" ,这一次,世界和谐了。

总结一下: 不要在function的属性中使用name作为属性,但用作function的prototype里面就没有任何问题。

OK,今天先讲这么多,下期再会。

Hope this helps,
Scott
  评论这张
 
阅读(505)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017