Foo是一个名为list的公共成员的函数。它有一个名为setList的公共成员函数。我希望能够从setList编辑列表。我能这样做吗?我尝试了一些事情,但我甚至无法从setList中访问列表。
var Foo = function Foo() {
this.list = ["a", "b", "c"];
this.setList = function(data) {
// Attempt 1
console.log(list); // Uncaught ReferenceError: list is not defined
// Attempt 2
console.log(this.list); // undefined
// Attempt 3
console.log(Foo.list); // undefined
}
}
我还在骗JS,所以如果我用错误的名字打电话,请原谅我。
答案 0 :(得分:1)
假设您正在使用Foo
创建实例:
function Foo()
{
this.list = ["a", "b", "c"];
this.setList = function(data) {
this.list = data;
}
}
var x = new Foo();
console.log(x.list); // a,b,c
x.setList([]);
console.log(x.list); // empty array
答案 1 :(得分:0)
您还可以设置一个原型,它将产生相同的结果。我可以解释为什么有时你可能想要使用原型,但这个链接提供了关于该主题的良好信息http://thecodeship.com/web-development/methods-within-constructor-vs-prototype-in-javascript/
function Foo(){
this.list = [1,2,3];
}
Foo.prototype = {
setList: function(data){
this.list = data;
}
};
var x = new Foo();
x.setList(['hello', 'hi']);
console.log(x.list);
这将记录传递到x.setList的数组,该数组是['hello','hi'],显示该列表已更新。