最後決定花時間去掌握使用JS編程,而不是隻在文件尾部填充意大利麪代碼到腳本標記中。在我看來,YDKJS是一個很好的資源。我對工廠模式,IFFE以及如何使用對象和Object.create(...)有很好的理解。JavaScript的使用案例構造函數
我無法找到答案的一個問題是,如果仍然使用構造函數,並且如果是的話,那麼它們的用例是什麼?我問的唯一原因是因爲有多年的文章,那就是答案。似乎這個想法是更接近基於類的繼承(在es6之前)。
本質上是一種設計模式,我應該投入時間學習?
最後決定花時間去掌握使用JS編程,而不是隻在文件尾部填充意大利麪代碼到腳本標記中。在我看來,YDKJS是一個很好的資源。我對工廠模式,IFFE以及如何使用對象和Object.create(...)有很好的理解。JavaScript的使用案例構造函數
我無法找到答案的一個問題是,如果仍然使用構造函數,並且如果是的話,那麼它們的用例是什麼?我問的唯一原因是因爲有多年的文章,那就是答案。似乎這個想法是更接近基於類的繼承(在es6之前)。
本質上是一種設計模式,我應該投入時間學習?
構造函數被設計爲與新的前綴一起使用。新前綴根據函數的原型創建一個新對象,並將該對象綁定到該函數的隱含參數。
來源:JavaScript的由Douglas Crockford的
完全知道他們是什麼,做什麼。主要看它是否仍然是JS的設計模式。 – nerdlyist
當然構造函數的好的部分意義和使用。考慮以下幾點:
A = function()
{
this.foo = "bar";
};
A.prototype.printFoo = function()
{
console.log(this.foo);
};
B = function()
{
this.foo = "foobar";
};
B.prototype = Object.create(A.prototype);
aInstance = new A();
aInstance.printFoo(); // foo
bInstance = new B();
bInstance.printFoo(); // foobar
的位被簡化了:當調用一個函數與new
關鍵字,JS將其視爲一個構造函數和通過命名this
到它的空對象。將構造函數的返回值賦給變量時,它將包含this
對象,該對象通過函數原型的屬性進行擴展,並對構造函數中應用的this
進行了修改。因此構造函數在JS中是非常有用和必要的。
在ES6中,構造函數(以及一般的類方向)變得更加突出;看看https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Classes瞭解更多。
構造函數還在使用嗎?
是的,他們當然是。他們是並將繼續成爲主導對象建設模式。它們與對象文字一樣普遍。它們在引擎中具有最佳性能優化,並且在需要大量實例時使用。具有初始化構造函數的類模式和方法繼承的原型是您獲得的最方便的模式,自ES6以來使用了額外簡單的class
語法。
在凱爾辛普森的視頻中提到,ES6中引入了構造函數,使它感覺像基於類的本質,因爲即使JS本身不成熟,它也會成熟。 – Rikin
他正在談論ES6之前的構造函數@Rikin –
「*那裏有多年的文章,那就是答案。」* - 答案是什麼? – Bergi