Javascript 实例化不带'的类;新';
尝试为Javascript 实例化不带'的类;新';,javascript,arrays,events,Javascript,Arrays,Events,尝试为数组创建一个包装器类,该类使用事件侦听器对其进行增强。下面是其用法的一个示例: new Stack(1, 2, 3).on('push', function (length) { console.log('Length: ' + length + '.'); }).push(4, 5, 6); 这是我的代码(): 我希望能够实例化堆栈,而无需使用新建,通常,我会这样做: if (!(this instanceof Stack)) { return new Stack(argume
数组
创建一个包装器类,该类使用事件侦听器对其进行增强。下面是其用法的一个示例:
new Stack(1, 2, 3).on('push', function (length) {
console.log('Length: ' + length + '.');
}).push(4, 5, 6);
这是我的代码():
我希望能够实例化堆栈
,而无需使用新建
,通常,我会这样做:
if (!(this instanceof Stack)) {
return new Stack(arguments);
}
但它在这里不起作用,因为我基本上是将参数
(一个psuedo数组)作为第一个参数传递给<代码>参数
如何使其不使用
new
调用堆栈?您可以使用对象。创建来创建对象,然后使用.apply()
来应用参数
if (!(this instanceof Stack)) {
var t = Object.create(Stack.prototype);
Stack.apply(t, arguments);
return t
}
我相信ES6允许使用spread操作符传递带有new
的参数集合,但这将涵盖传统浏览器
if (!(this instanceof Stack)) {
var t = Object.create(Stack.prototype);
Stack.apply(t, arguments);
return t
}