var Class = function () { var klass = function () { }; klass.prototype.init = function () {}; // 定義 prototype 的別名 klass.fn = klass.prototype; // 定義類的別名 klass.fn.parent = klass; // 給類添加屬性 klass.extend = function (obj) { var extended = obj.extended; for (var i in obj) { klass[i] = obj[i]; } if (extended) extended(klass) }; // 給實例添加屬性 klass.include = function (obj) { var included = obj.included; for (var i in obj) { klass.fn[i] = obj[i]; } if (included) included(klass) }; return klass;};var Person = new Class;Person.include({ save: function(id) { console.log("id is: " + id); }, exists: function(id) { /* ... */ }});var person = new Person;person.save();關于兩個new的問題,第一個是new的是klass的實例,第二個new的是什么?打印出來的Person的原型是klass,person也是klass?這是什么情況?還是我完全理解錯了?
如何理解關于構造函數的這段代碼?
牧羊人nacy
2018-12-28 15:14:21