如何从新对象返回值,同时保留其方法
How do I return a value from a new object, whilst keeping its methods
所以我有这样的代码:
function set(a) {
this.foo = function(){
alert('bar');
}
return a;
}
var b = new set([2,3,4]);
b; //returns [2,3,4]
b.foo(); //undefined function
我想将数组输入作为新集合的返回值返回,而不必将其附加到属性,例如 this.arr = a;
如何在不从对象上擦除 foo 方法的情况下实现此目的?
我想你可以这样做!
function set(a) {
a.foo = function(){
alert('bar');
}
return a;
}
var b = new set([2,3,4]);
b; //returns [2,3,4]
b.foo(); //this shows alert
如果我正确理解你所追求的是什么,你需要:
function set(a) {
a.foo = function(){
alert('bar');
}
return a;
}
var b = new set([2,3,4]);
b.foo(); //alerts
。即将方法附加到输入,而不是像以前那样附加到全局命名空间。
function set(a) {
var o = {};
o.foo = function(){
alert('bar');
};
return o;
}
应该是你想要的 - 你不需要参数。
为了保持构造函数的清洁,如果你想将this.foo保留在set()中,你可能应该new set().foo
方法添加到Array.prototype
function set(a) {
this.foo = function(){
alert('bar');
};
return a;
}
Array.prototype.foo=new set().foo;
var b = new set([2,3,4]);
console.log(b); //returns [2,3,4]
b.foo();// alerts 'bar'
相关文章:
- Rx-subscribe方法如何在不传递上下文的情况下保留上下文
- 控制台.log包装器,保留行号并支持大多数方法
- JavaScript:有没有更好的方法来保留你的数组,但有效地连接或替换项目
- 如何从新对象返回值,同时保留其方法
- Javascript子类对象不保留基类的属性/方法
- 如何在回发上保留选定的选项卡或以编程方式调用之前激活方法
- 保存dom的方法应该保留较少的内存
- 保留公共方法的JavaScript压缩
- 在保留状态的同时调用原型方法
- 从视图源下载html的简单方法,同时保留文件夹结构
- 使用.html()来替换替换元素,有没有一种方法可以保留事件
- 是否有任何解决方法可以重新抛出异常并在Javascript中保留堆栈争用
- JavaScript方法的部分应用:如何保留“this”的含义
- 如何在使用 GET 方法发送 url 时保留文本区域输入中的文本段落
- 最有效的保留sprint输出的前导空白的方法
- JavaScript[].Sort()方法在应该保留元素时进行排序
- 当使用微软翻译工具时,是否有一种方法可以删除小部件,但保留翻译?
- 如何重命名/保留回调方法
- 对象返回自己的属性并保留方法
- 保留分配给实例方法的变量的上下文