请运行以下代码片段1并查看 JS 控制台中发生了什么:
我的问题是关于片段中的最后一行:
- 为什么
F.prototype.method;
变了? - 我应该如何重新定义
Fcustom.prototype.method
才能不改变F.prototype.method
?
注意:我使用 jQuery 和下划线来扩展功能。
1测试代码片段:
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?