JavaScript中的構造函數調用是一種特殊的函數調用方式,它用于創建并初始化一個新的對象。構造函數充當了對象的藍本,通過它可以定義對象的屬性和方法。當我們嘗試創建一個新的對象時,我們可以使用構造函數來構造這個對象。
構造函數使用關鍵字“new”來調用,創建一個新的對象并返回,例如:
function Person(name, age) { this.name = name; this.age = age; } const person = new Person("Tom", 18); console.log(person); // {name: "Tom", age: 18}
上面的例子中,我們定義了一個名為“Person”的構造函數,它接受兩個參數,分別是“name”和“age”,并使用“this”關鍵字定義了兩個屬性。我們使用“new”關鍵字來調用該構造函數創建一個新的對象,將值傳遞給它的兩個參數,然后將這個對象賦值給“person”變量。
接下來我們再看一個例子:
function Book(title, author, price) { this.title = title; this.author = author; this.price = price; this.display = function() { console.log(`書名:${this.title},作者:${this.author},價格:${this.price}元`); } } const book1 = new Book("JavaScript權威指南", "David Flanagan", 98); const book2 = new Book("JavaScript高級程序設計", "Nicholas C. Zakas", 99); book1.display(); // 書名:JavaScript權威指南,作者:David Flanagan,價格:98元 book2.display(); // 書名:JavaScript高級程序設計,作者:Nicholas C. Zakas,價格:99元
以上例子中,我們定義了一個Book構造函數,它接受三個參數,title、author和price,并使用this關鍵字定義了三個屬性。同時,它還定義了一個名為“display”的方法,在調用該方法時,它將輸出對象的屬性值。我們使用 Book() 構造函數創建兩個 Book 對象,并調用它的 display() 方法來顯示每個對象。
構造函數不僅可以定義屬性和方法,還可以使用原型繼承構造函數的屬性和方法,來看一個例子:
function Animal(type) { this.type = type; } Animal.prototype.eat = function(food) { console.log(`${this.type}正在吃${food}`); } function Cat(name, age) { this.name = name; this.age = age; } Cat.prototype = new Animal("貓"); const cat = new Cat("小花", 2); cat.eat("魚"); // 貓正在吃魚 console.log(cat.type); // 貓 console.log(cat.name); // 小花 console.log(cat.age); // 2
我們定義了一個 Animal 類構造函數,它接受一個參數類型,并使用 this 關鍵字定義一個類型屬性,同時還定義了一個 eat 方法。然后定義了一個 Cat 類構造函數,它接受兩個參數 name 和 age,使用 this 關鍵字分別定義了兩個屬性。接著,我們將 Animal 的實例作為 Cat 的原型,并將類型屬性設置為“貓”。最后,我們創建一個 Cat 對象,并調用 eat 方法,輸出貓正在吃魚的信息。
以上就是一些關于 JavaScript 構造函數調用的例子,它們了解了構造函數的基本知識、創建對象、初始化對象以及使用原型繼承等內容。構造函數是 JavaScript 中非常強大的概念,它使我們可以輕松地創建和管理復雜的對象,同時還可以提供一些非常有用的特性和功能。