gpt4 book ai didi

javascript - 防止函数被直接调用

转载 作者:行者123 更新时间:2023-11-30 10:37:54 25 4
gpt4 key购买 nike

我正在为 HTML5 File(Reader) API 构建一个包装器,并回退到普通文件输入或 swfupload。

我有一个通用函数“Uploader”和三个子函数(都在同一范围内)

function Uploader() { }

function UploaderAPI() { }

function UploaderSWF() { }

function UploaderHTML() { }

想法是您创建一个 var uploader = new Uploader() 并且该函数根据功能支持/配置调用其中一个子函数。

但是,我想知道是否有一种方法可以防止用户直接调用其中一个子函数,而是让它们只对 Uploader() 可用。

如果不将它们移动到 Uploader 范围是否可行?

最佳答案

您可以使用 module pattern并将这些函数定义为私有(private)方法(通过闭包),但这会将您的函数移动到另一个范围内。

例如

var Uploader = function() {

var UploaderAPI = function() { alert('uploaderAPI'); };

var UploaderSWF = function() { alert('uploaderSWF'); };

var UploaderHTML = function() { alert('uploaderHTML'); };

return {

/* expose public methods here */

publicMethodAPI : function() {
alert('public uploaderAPI');
UploaderAPI();
}
};
};

这样做,您可以选择使一些公共(public)方法与实例一起可用,并在其中使用这些函数,但不直接调用它们,例如

var myupl = new Uploader();
myupl.publicMethodAPI();

示例(工作) fiddle :http://jsfiddle.net/ndQFB/

关于javascript - 防止函数被直接调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12929386/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com