2010-08-05 120 views
3

可能重複:
JavaScript: Class.method vs. Class.prototype.methodJavaScript的原型

什麼是創建一個原型這樣的區別:

Date.foo = function(bar) { 
    alert(bar); 
}; 

這:

Date.prototype.foo = function(bar) { 
    alert(bar); 
}; 

爲什麼/我該在什麼時候使用?

+3

見上日期的實例,另一種方法:JavaScript的:類.method與Class.prototype.method](http://stackoverflow.com/questions/1635116/javascript-class-method-vs-class-prototype-method) – CMS 2010-08-05 01:04:24

+0

有時候我會認爲這個問題以前一定要問過,並且盲目地結束這個問題。 – Anurag 2010-08-05 02:12:55

回答

2

在第一個例子中,foo是一個構造函數方法,它就像java中的'static'方法。第二個就像在一個類上定義一個foo方法 - 它的作用域是實例。

您將訪問首像

Date.foo() 

和第二像

Date d = new Date() 
d.foo() 

或類似

this.foo()