我这样做
Array.prototype.foo = function (){
return this.concat(this);
};
a = [1,2,3];
a.foo();
a; // [1,2,3,1,2,3]
如何在Array.prototype.foo中定义变量? 如果我尝试像这样的somtehing:
this = this.concat(this)
我收到错误消息:
“ReferenceError:赋值中的左侧无效”
答案 0 :(得分:2)
您无法指定this
keyword。要更改当前对象,必须通过更改其属性来修改它。
Array.prototype.foo = function (){
Array.prototype.push.apply(this, this);
return this;
};
a = [1,2,3];
a.foo();
a; // [1,2,3,1,2,3]
您当前的代码return
新实例,您需要重新分配到a
。
答案 1 :(得分:0)
您无法指定“此”。您可以为“a”变量指定一个新值。
Array.prototype.foo = function (){
return this.concat(this);
};
a = [1,2,3];
a = a.foo();
console.log(a);