Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用JavaScript实现简单的继承_Javascript_Inheritance_Constructor_Superclass - Fatal编程技术网

使用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('');
};