this.f.call(this)

this.f()
效果上完全没有区别。。
f.prototype中使用this是其原型对象
例子.
<script type="text/javascript">
var f = function () {};
f.prototype.name = "原型";
f.name = "f";
var o = new f;
alert(o.name);
</script>

解决方案 »

  1.   

    this.f.call(this)和this.f()有什么区别? 
    大多情况下应该是一样的,除非这三个能够表示不同的对象(是有这个可能,但一般应该没有人会写这样的用法)在f.prototype中使用this,是引用f而不是其原型对象吧? 
    看上下文:
    function f(){
    this.i=1;
    }
    var t=new f();
    f.prototype.i=2
    f.prototype.t=function (){alert(this.i)}
    t.t();                  //1 
    f.prototype.t();        //2