2012-05-14 128 views
0

原型在全球範圍內創建方法和屬性的目的是什麼? 這意味着所有的實例都可以訪問它嗎? 上述方法和屬性不在構造函數內,是否意味着每次創建對象時都不會創建它們?什麼是原型組合或繼承?

原型是TheClass中的一個對象嗎?

TheClass.prototype.someProperty = "hello"; 

所以在上面的說法,是在原型對象中創造的財產? 如果是這樣,那麼如果類在原型對象內部創建,那麼如何訪問該屬性?

這些是如何訪問屬性

var obj = new TheClass(); 
alert(obj.someProperty); 

不是這個

alert(obj.prototype.someProperty); 

的toString()爲原型對象 你叫的toString()內通過調用toString所屬的對象來調用,但是toString()屬於原型對象嗎?

爲什麼通過調用對象而不是原型誰是在一個對象內。 即時通訊熟悉這個被稱爲組成

so why this work?我明白,如果它遺產,但沒有它是組成和我們沒有寫委託的的toString()原型的方法對對象的聲明

alert(theClass); 

alert(prototype); 

回答

2

類從一個特定的類繼承訪問對類的原型方法。這使得prototype是一個基於繼承的構造。

原型在全局創建方法和屬性的目的是什麼?

是的。 Prototype允許您提供可以從該類繼承的類方法和屬性的實例。

那麼這意味着所有的實例都可以訪問它嗎?

是的。

原型是TheClass中的一個對象嗎?

編號原型是一組屬性,從TheClass繼承的類也被授予訪問權限。如果在特定對象上找不到屬性,它將搜索該屬性的原型鏈。在JS

1

是原型的目的,在全球範圍內建立的方法和屬性?

是的,你加的屬性和方法的原型,使得所有實例功能有機會獲得相同的方法和屬性。在一個函數的原型方法/屬性的任何更改會影響功能

因此,這意味着所有的情況下都可以訪問它的所有實例?

是的。

的所述方法和屬性不是在構造函數中,是 ,這意味着它們不是創建的每個被創建的對象的時間?

是的,它們在每次初始化時都不會重新創建 - 這是主要目的之一。