prototype
这个属性。这也验证了开发人员是否有能力扩展原生数据类型函数(虽然不应该这么做)。在这里,另一种重点是,展示你意识到如何在不重写可能已经定义的函数。这个需要在自定义函数之前判断函数不存在。
`String.prototype.repeatify = String.prototype.repeatify || function(times) {/* code here */};``
当你被要求一个垫片javascript函数时,这个技巧十分有用。
问题3: 提升变量(Hoisting)
执行以下代码会有什么结果?为什么会这样?
function test() { console.log(a); console.log(foo()); var a = 1; function foo() { return 2; }}test();
答案
这段代码的执行结果是 undefined
和 2
。
这个结果的原因是,变量和函数都被提升了( hoisted )。因此,那个时候