在看《你不知道的JavaScript》中,有一段關于繼承的mixin實現(xiàn),代碼如下:function mixin( sourceObj, targetObj ) {//sourceObj中不在targetObj中的key,添加到targetObj中。 for (var key in sourceObj) {// 只會在不存在的情況下復制 if (!(key in targetObj)) { targetObj[key] = sourceObj[key]; } } return targetObj;}var Vehicle = { engines: 1, ignition: function() { console.log( "Turning on my engine." ); }, drive: function() { this.ignition(); console.log( "Steering and moving forward!" ); }};var Car = mixin( Vehicle, { wheels: 4, drive: function() { Vehicle.drive.call( this ); console.log( "Rolling on all " + this.wheels + " wheels!" ); }} );Car.drive();輸出如下:Turning on my engine.Steering and moving forward!Rolling on all 4 wheels!只是調(diào)用了drive()方法,為什么ignition()中的內(nèi)容也被打印了那?是哪里使用的不對嗎?
js 的mixin實踐問題
紅顏莎娜
2019-03-06 16:19:11