function Product(name, price) { this.name = name; this.price = price; } function Food(name, price) { Product.call(this, name, price); this.category = 'food'; } function Toy(name, price) { Product.call(this, name, price); this.category = 'toy'; } var cheese = new Food('feta', 5); var fun = new Toy('robot', 40);
call
方法調用父構造函數 在一個子構造函數中,你能夠經過調用父構造函數的 call
方法來實現繼承,相似於 Java
中的寫法。下例中,使用 Food
和 Toy
構造函數建立的對象實例都會擁有在 Product
構造函數中添加的 name
屬性和 price
屬性,但 category
屬性是在各自的構造函數中定義的。函數
fun.call(thisArg, arg1, arg2, ...)
thisArg
this
在 fun
函數運行時指定的 this
值。if(thisArg == undefined|null) this = window,if(thisArg == number|boolean|string) this == new Number()|new Boolean()| new String()spa
arg1, arg2, ...
code
指定的參數列表。對象
使用調用者提供的 this
值和參數調用該函數的返回值。若該方法沒有返回值,則返回 undefined
。blog
3)描述:繼承
call()
容許爲不一樣的對象分配和調用屬於一個對象的函數/方法。ip
call()
提供新的 this 值給當前調用的函數/方法。你能夠使用 call
來實現繼承:寫一個方法,而後讓另一個新的對象來繼承它(而不是在新對象中再寫一次這個方法)。get