1.现需要一个函数counter(),使每次调用它的时候返回递增的值。第一次返回1,第二次返回2,以此类推。请写出这样一个函数,不允许使用任何全局变量,也不允许在counter函数上附加属性,如counter.n这样的属性,也不允许使用cookie这样的东西。
闭包。
var counter = function() { var n = 0; return function(){return ++n;}; }(); for (var i=0; i<4; i++) { alert(counter()); }
2.“加入收藏”功能
function add2Fav() { try { window.external.addFavorite(sURL, sTitle); } catch (e) { try { window.sidebar.addPanel('tencent', 'http://www.example.com/', ""); } catch (e) { alert("加入收藏失败,有劳您手动添加。"); } } }
3.IE8支持的X-UA-Compatible是做什么用的?
X-UA-Compatible是针对ie8新加的一个设置,对于ie8之外的浏览器是不识别的,这个区别与content="IE=7"在无论页面是否包含<!DOCTYPE>指令,都像是使用了 Windows Internet Explorer 7的标准模式。而content="IE=EmulateIE7"模式遵循<!DOCTYPE>指令。对于多数网站来说,它是首选的兼容性模式。目前IE8尚在测试版中,所以为了避免制作出的页面在IE8下面出现错误,建议直接将IE8使用IE7进行渲染。也就是直接在页面的header的meta标签中加入如下代码:
<meta http-equiv="X-UA-Compatible" content="IE=7" />
4. 实现最简单的JS类继承。现有类Point,请补充好类Rect,使之继承自Point。
function Point(x,y){ this.x=x; this.y=y; } function Rect(x,y,width,height){ /*this.p = Point; this.p(x,y); delete this.p;*/ Point.call(this,x,y); this.w=width; this.h=height; this.output = function(){return this.x+" "+this.y+" "+this.w+" "+this.h}; }