一道有趣的JS面试题
var a = { b : function() { alert(this.c); }, c : 1};a.b();(a.b)();(a.b = a.b)();
请问以上输出是什么?
当你搞定上面这道之后,请再看下面这道题:
var foo = { bar: function () { return this.baz; }, baz: 1};(function () { return typeof arguments[0]();})(foo.bar);A. "undefined"B. "object"C. "number"D. "function"
第二道题出自http://www.nowamagic.net/javascript/js_PuzzleJavascriptQuiz.php
OK,如果你搞定了前两道题,看下下面这面原生的练习题(太臭美了,根本和上面几乎处处一致,):
var baz = 'laruence';var foo = { bar: function () { alert(this.baz); }, baz: 'll'};(f = foo.bar)();