首页 > 技术文章 > javascript function

Iwillknow 2014-11-25 11:21 原文

function assert(value1, value2) {
  if (value1) {
    console.log(value2);
  }
}

function isNimble() {
  return true;
}
assert(typeof window.isNimble === "function", "is isNimbl() defined");
assert(isNimble.name === "isNimble", "isNimble() has a name");

var canFly = function() {
  return true;
};
assert(typeof window.canFly === "function", "canFly() defined");
assert(canFly.name === "", "canFly() has no name");

window.isDeadly = function() {
  return true;
};
assert(typeof window.isDeadly === "function", "isDeadly() defined");
assert(isDeadly.name === "isDeadly", "isDeadly() has a name");

function outer() {
  assert(typeof inner === "function", "inner() in scope before declaration");
  function inner () {}
  assert(typeof inner === "function", "inner() in scope after declaration");
  assert(window.inner === undefined, "inner() not in global scope");
}

outer();
assert(window.inner === undefined, "inner() stilll not in global scope");


window.wieldsSword = function swingsSword() { return true; };
assert(window.wieldsSword.name === 'swingsSword', "wieldSword's real name is swingsSword");
"is isNimbl() defined"
"isNimble() has a name"
"canFly() defined"
"canFly() has no name"
"isDeadly() defined"
"inner() in scope before declaration"
"inner() in scope after declaration"
"inner() not in global scope"
"inner() stilll not in global scope"
"wieldSword's real name is swingsSword"

 

推荐阅读