通过"this"与"prototype"分配功能有什么区别?

Fat*_*cet 5 javascript oop constructor prototype function

可能重复:
在Javascript中使用'prototype'与'this'?

我对这两种向函数添加方法的方式感到困惑.让我举个例子来解释一下.

var foo = function(){
    this.bar = function(){alert('I am a method')}
}

foo.prototype.baz = function(){alert('I am another method')}

var car = new foo();

现在,在这一点上我们可以使用汽车的baz和bar方法.好吧,但它们之间有什么区别.为函数原型或它的构造函数添加方法的细微差别是什么.

谢谢..

SLa*_*aks 9

分配给该函数的函数prototype将由所有实例共享; 在构造函数中分配的函数将为每个实例分别具有一个函数对象.

此外,构造函数中的函数assign可以使用构造函数的变量和参数.

例如:

var foo = function(param){
    this.bar = function() { alert('I can see a parameter: ' + param); };
}

foo.prototype.baz = function() { alert('I can't see foo's parameters'); };

var car = new foo("Hi there!");
car.bar();
Run Code Online (Sandbox Code Playgroud)