前段时间同事去面试,碰到一个javascript题目,很是有趣,拿出来大家讨论讨论
代码如下:
var person=function ()
{
this.name="dd";
}
person.prototype.ff=function()
{
alert(this.name);
}
var c=new person();
var a=c.ff;
c.ff();
a();
这里,c.ff()调用,很明显结果是"dd";
但是后面一个a=c.ff;我个人的理解是将c.ff这个函数的引用赋给a
该引用进行执行a();结果应该是undefined,此处却是"",这是为什么呢?