JavaScript:發現一組非常好的js函數、原型和對象的題目

width="760" scrolling="no" height="90" frameborder="0" src="http://p.alimama.com/code.php?t=2&i=mm_10003521_106784_109301&w=760&h=90&sz=11&bgc=FFFACD&bdc=FFFFFF&tc=000080&lc=000000&dc=000000" name="alimamaifrm" id="alimamaifrm" border="0" marginwidth="0" marginheight="0">

發現一組非常好的js函數、原型和對象的題目,在原帖的下面有題目的分析,正在學習中,稍後一定補上我的分析和理解
http://www.javascript.com.cn/bbs/viewthread.php?tid=15030&extra=page%3D1%26amp%3Bfilter%3Dtype%26amp%3Btypeid%3D2&page=1
函數

第一題
var i=5;
function fo()
{
    var i=4;
    var fi=new Function("alert(i);");
    fi();
}
fo();

第二題
function f1()
{
    i=20;
    eval("var i");
}
alert(i);
function f1()
{
    i=10;
    var i;
}
alert(i);

第三題
function f1()
{
    alert("1");
}
function f2()
{
    alert("2");
}
var f3=f1.call;
f3.call(f2);

第四題
function fo()
{
    var i=0;
    return function(n)
    {
        return n+i++;
    }
}
fo()(15);
alert(fo()(20));

第五題
function f1(n)
{
    if(n==0)return;
    else return f2(--n);
}
function f2(n)
{
    alert(f1.caller);
    return f1(n);
}
f1(2);

第六題
alert(typeof Function.prototype);
alert(Object.prototype instanceof Function);
alert(Function.prototype instanceof Function);

原型和對象

第一題
function cls1()
{
    this.a=new Array;
}
function cls2()
{   
}
cls2.prototype=new cls1;
var x=new cls2;
var y=new cls2;
x.a.push(1,2,3);
alert(y.a);

第二題
function cls1()
{
    this.a=1;
}
function cls2()
{   
}
var x=new cls2;
cls2.prototype=new cls1;
var y=new cls2;
alert(x.a);
alert(y.a);

第三題
function cls1()
{
    this.a=1;
}
function cls2()
{
}
var x=new cls2;
cls2.prototype.a=1;
var y=new cls2;
alert(x.a);
alert(y.a);

第四題
function cls1()
{
    this.a=1;
}
function cls2()
{
}
var x=new cls2;
cls2.prototype.a=1;
var y=new cls2;
alert(x.a);
alert(y.a);

第五題
String.prototype.self=function()
{
    return this;
}
var s="s";
alert("s".self()=="s")
alert(s.self()==s)
alert("s"==="s")
alert("s".self()=="s".self())
alert(s.self()==s.self())
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章