1

我正在尝试在我的视图主体中提取一个 JS 函数(它工作正常)并将其作为我可以调用方法的对象放入外部 js 文件中。

这是使用Jottings JS 电子邮件混淆器,目前我只是输出一个硬编码的链接标签。

我的观点:

<script type="text/javascript" src="/js/email-obfuscator.js">email.encrypt();</script>

我的 JS 文件:

var email = function()
{ 
    this.encrypt = function()
    {
        document.write('<a href="mailto:test@example.com">Support</a>');
    }
};

我没有收到任何 JS 错误,但也没有收到任何输出,这是我第一次尝试创建自己的外部 JS 对象,知道我哪里出错了吗?

4

1 回答 1

2

encrypt方法是您的类的公共方法email- 要使用它,您需要创建电子邮件的实例

var myEmail = new email();
myEmail.encrypt();

如果您想坚持当前调用encrypt方法的方式,则需要从中创建一个静态方法:

var email = function() {
  // do something
}

email.encrypt = function() {
  document.write('<a href="mailto:test@example.com">ELF Support</a>');
}

但最适合您的是什么,取决于您当前的使用情况,您需要自己考虑是否需要多个电子邮件实例并且可能加密不同的链接或者它是否可以保持静态。

更新:差点忘了重要的部分:你需要将js文件的加载与实际使用分开:

<script type="text/javascript" src="js/email-obfuscator.js"></script>
<script type="text/javascript">
  var myEmail = new email(); 
  myEmail.encrypt();
</script>
于 2013-09-07T13:38:01.797 回答