我有3段代码:
代码1:
var object = {
someMethod: function(a) { calling() }
};
function calling(){console.log("i am calling me");}
代码2:
var wrapper = function(){
add: function(key, value){ localStorage.setItem(key, value) }
};
代码3:
{{1}}
只有Code 3似乎失败了:Uncaught SyntaxError:意外的令牌((...)VM296:3是它在Chrome中提供的错误。有人可以解释一下它的错误吗?
我的想法是创建一个函数' wrapper'并且'添加','删除'并且'更新'其中的方法,以便访问它们:wrapper.add(param1,param2);
答案 0 :(得分:1)
应该是
var wrapper = function(){
this.add = function(key, value){ localStorage.setItem(key, value) }
};
如果您使用{}
或function(){}
它们在您的情况下基本上用于相同的目的,但语法不同。 你当然也可以像其他两个一样写它。
var wrapper = {
add: function(key, value){ localStorage.setItem(key, value) }
};
答案 1 :(得分:0)
在第一个示例中,您有一个名为object
的对象,它有一个方法someMethod
,可以打印到控制台。
在第二个示例中,您有一个带有方法和全局函数的对象。对象的方法调用全局函数。
在第三个示例中,您有一个函数,并且您正在尝试向该函数添加方法。这不起作用。您可以向对象添加方法。它应该是这样的:
var wrapper = {
add: function (key, value) {
localStorage.setItem(key, value);
}
};
并使用wrapper.add(key, value)
访问它。
另外,在Luka的回答中,他给出的第一个例子不是对象而是对象构造函数。如果您使用以下代码
var wrapper = function(){
this.add = function(key, value){ localStorage.setItem(key, value) }
};
您无法使用wrapper.add(key, value)
访问它。首先,您需要使用构造函数new wrapper()
创建对象,然后访问该方法。
var myObject = new wrapper();
myObject.add(key, value);
// or
new wrapper().add(key, value);
我认为这不是您正在寻找的。 p>