我想在构造函数上实现一个扩展方法,并用它来初始化一个实例,比如:
var view_instance = View.extend()
所以我尝试了这个:
define(function (require, exports, module) {
function View(size, color) {
this.size = size;
this.color = color;
};
View.prototype = {
show: function () {
console.log("This is view show");
}
}
View.extend = function (props) {
var tmp = new this("12", "red");
console.log(this);
console.log(tmp instanceof this) //true
console.log(tmp.prototype); //undefined!
return tmp
}
return View;
})
在上面的extend
方法中,我通过 初始化了一个实例new this()
,但是我无法记录它的原型,我检查了this
它是否正确。
那么我的代码有什么问题?为什么原型会消失?我怎样才能做到正确?