您的位置:首页 > 移动开发 > Objective-C

实现函数自己调用自己

2011-04-14 11:37 501 查看
/*****************函数名****************/
//yell呼喊
//实现函数自己调用自己
function yell(n){
  return n > 0 ? yell(n-1) + "a" : "hiy";
}
alert(yell(4))
//忍者
//可以将函数赋给一个变量,在该函数中ninja==myNinja,在函数外无法访问myNinja,
var ninja = function myNinja(){
  assert( ninja == myNinja, "This function is named two things - at once!" );
};
ninja();
assert( typeof myNinja == "undefined", "But myNinja isn't defined outside of the function." );
//可以将一个匿名函数做为一个对象的属性
var ninja = {
  yell: function(n){
    return n > 0 ? ninja.yell(n-1) + "a" : "hiy";
  }
};
assert( ninja.yell(4) == "hiyaaaa", "A single object isn't too bad, either." );
//可以将一个对象的属性继承给另一个对象。
var ninja = {
  yell: function(n){
    return n > 0 ? ninja.yell(n-1) + "a" : "hiy";
  }
};
assert( ninja.yell(4) == "hiyaaaa", "A single object isn't too bad, either." );
 
var samurai = { yell: ninja.yell };
var ninja = null;     //如果原始对象为空,则不能发生继承
 
try {
  samurai.yell(4);
} catch(e){
  assert( false, "Uh, this isn't good! Where'd ninja.yell go?" );
}
//同上例(纠错)
var ninja = {
  yell: function yell(n){
    return n > 0 ? yell(n-1) + "a" : "hiy";
  }
};
assert( ninja.yell(4) == "hiyaaaa", "Works as we would expect it to!" );
 
var samurai = { yell: ninja.yell };
var ninja = {};
assert( samurai.yell(4) == "hiyaaaa", "The method correctly calls itself." );
//如果没有给函数指定名称,则arguments.callee就是它自己
var ninja = {
  yell: function(n){
    return n > 0 ? arguments.callee(n-1) + "a" : "hiy";
  }
};
assert( ninja.yell(4) == "hiyaaaa", "arguments.callee is the function itself." );//yell呼喊
//实现函数自己调用自己
function yell(n){
return n > 0 ? yell(n-1) + "a" : "hiy";
}
alert(yell(4))
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  function object null
相关文章推荐