使用JavaScript实现简单的继承
调用使用JavaScript实现简单的继承,javascript,inheritance,constructor,superclass,Javascript,Inheritance,Constructor,Superclass,调用newstringstream(1,2,3)将给出一个空数组 function StringStream() {} StringStream.prototype = new Array(); StringStream.prototype.toString = function(){ return this.join(''); }; 给予 有人能解释一下为什么不调用超类“(Array)构造函数吗?仅仅因为StringStream.prototype是一个数组,StringStream构造函数
newstringstream(1,2,3)
将给出一个空数组
function StringStream() {}
StringStream.prototype = new Array();
StringStream.prototype.toString = function(){ return this.join(''); };
给予
有人能解释一下为什么不调用超类“(
Array
)构造函数吗?仅仅因为StringStream.prototype
是一个数组,StringStream
构造函数也没有被Array
替换
您应该自己实现它:
谁给了你这个密码?为什么(因此没有办法调用数组obj的构造函数并传递参数,而不是调用push方法?@Markos Evlogimenos:你不能将
new
和结合起来。apply
所以我想没有办法。无论如何,你为什么要尝试创建一个与Array
等效的构造函数?
x = new StringStream(1,2,3)
StringStream[0]
__proto__: Array[0]
function StringStream() {
// push arguments as elements to this instance
Array.prototype.push.apply(this, arguments);
}
StringStream.prototype = new Array;
StringStream.prototype.toString = function(){
return this.join('');
};