我编写了一个混淆电子邮件地址的 JS 对象,但是我发现了两种稍微不同的方法(每种方法都有 1 个私有方法和 1 个公共方法):
对象 1:
var email = new function()
{
function encrypt(code, key)
{
<eliminated for brevity>
};
this.mailto = function(address, name)
{
link = encrypt(<code>, <key>);
document.write('<a href="mailto:'+ link +'">'+ name +'</a>');
}
};
对象 2:
var email = function()
{
function encrypt(code, key)
{
<eliminated for brevity>
};
return {
mailto: function(address, name)
{
link = encrypt(<code>, <key>);
document.write('<a href="mailto:'+ link +'">'+ name +'</a>');
}
};
}();
这两种语法都有效,可以通过以下方式调用:
email.mailto('example', 'Example');
我对内存使用或可扩展性特别感兴趣。
在我看来,好像对象 1 每次被调用时都会创建一个新实例?
有什么区别?