請運行下面的代碼片段,看看是什麼在JS控制檯發生如何重新定義一個方法:在「JavaScript類」
我的問題是關於在片段中最後一行:
- 爲什麼
F.prototype.method;
更改? - 如何重新定義
Fcustom.prototype.method
以便不更改F.prototype.method
?
注:我使用jQuery和下劃線來擴展函數。
測試的代碼片斷:
var F = function() {}; F.prototype.method = function() { // some code } F.prototype.method; // it shows "some code" Fcustom = $.extend(true, F, {}); _.extend(Fcustom.prototype, { method: function() { // other code } }); Fcustom.prototype.method; // it shows "other code" F.prototype.method; // it shows "other code" instead of "some code" Why?
你想克隆函數'F'到'Fcustom'嗎? – pimvdb
不幸的是,你不能克隆功能... –