原型與建構函式定義方法的優點
在JavaScript 中定義方法時,開發人員可以選擇將其實作為原型方法或聲明它們直接在建構函數中。兩種方法都有其優點:
原型定義的方法
範例:
function Class() {} Class.prototype.calc = function (a, b) { return a + b; } // Two instances share the same calc() method var ins1 = new Class(), ins2 = new Class(); console.log(ins1.calc(1,1), ins2.calc(1,1)); // Outputs 2, 2 // Updating the prototype method affects both instances Class.prototype.calc = function() { return Array.prototype.slice.apply(arguments).reduce((a, b) => a + b); } console.log(ins1.calc(1,1,1), ins2.calc(1,1,1)); // Outputs 3, 3
但是,原型方法無法存取內部定義的私有變數
建構子定義的方法
函數與變數宣告"Class"
關於使用函數文字(例如var Class = function () {})或函數宣告(例如function Class () {})之間的選擇,後者是首選,因為它允許將函數名稱「提升」到作用域的頂部,避免在定義函數之前調用該函數而導致的潛在錯誤。
以上是原型與建構函式定義的方法:哪一個最適合 JavaScript?的詳細內容。更多資訊請關注PHP中文網其他相關文章!