Javascript 定义将由用户实现的功能
我有下面的示例代码Javascript 定义将由用户实现的功能,javascript,function,language-design,Javascript,Function,Language Design,我有下面的示例代码 var object = { userDefinedFunction : function(){ //no implementation, this will be defined by the user } } 我想要实现的是用户给出自己的it实现: object.userDefinedFunction = function(){ alert("just testing"); } 我对此进行了测试,并按照预期工作,我想知道的是:
var object = {
userDefinedFunction : function(){
//no implementation, this will be defined by the user
}
}
我想要实现的是用户给出自己的it实现:
object.userDefinedFunction = function(){
alert("just testing");
}
我对此进行了测试,并按照预期工作,我想知道的是:
- 这就是javascript解决此类问题的方法吗
- 假设必须实现
,如何确保这一点?我可以依赖以下内容,检查是否实现了userDefinedFunction
,但我正在学习javascript,因此我想知道如何利用该语言:userDefinedFunction : function(){ implemented = false; }
谢谢。我不知道这是否是正确的方法,但是如果您的对象必须由用户以某种方式初始化,您可以在此函数中测试
userDefinedFunction
是否已定义,如果未定义,则引发异常
一种感觉更干净的实现方法是让用户提供某种定义函数的配置对象,例如:
yourObject.initialize({
userDefinedFunction: function() {}
});
我不知道这是否是正确的方法,但如果用户必须以某种方式初始化对象,则可以在此函数中测试
userDefinedFunction
是否已定义,如果未定义,则抛出异常
一种感觉更干净的实现方法是让用户提供某种定义函数的配置对象,例如:
yourObject.initialize({
userDefinedFunction: function() {}
});
您可能会在默认实现中引发错误:
var object = {
userDefinedFunction : function(){
throw "userDefinedFunction must be implemented";
}
}
或显示警报框,具体取决于您的应用程序。您可以在默认实现中抛出错误:
var object = {
userDefinedFunction : function(){
throw "userDefinedFunction must be implemented";
}
}
var object = {
userDefinedFunction : undefined,
anotoherDefinedFunc : undefined,
/* ... */
hasUserImplementedInterfaces : function() {
if (typeof object.userDefinedFunction !== 'function') return false;
if (typeof object.anotoherDefinedFunc !== 'function') return false;
/* ... */
return true;
}
};
console.log(object.hasUserImplementedInterfaces());
或显示警报框,具体取决于您的应用程序
var object = {
userDefinedFunction : undefined,
anotoherDefinedFunc : undefined,
/* ... */
hasUserImplementedInterfaces : function() {
if (typeof object.userDefinedFunction !== 'function') return false;
if (typeof object.anotoherDefinedFunc !== 'function') return false;
/* ... */
return true;
}
};
console.log(object.hasUserImplementedInterfaces());
hasUserImplementedInterfaces()
函数检查用户函数实现,以便您可以使用该对象作为第一次检查执行
hasUserImplementedInterfaces()
函数检查用户函数实现,以便您可以使用该对象作为第一个检查执行。我不确定如何在javascript中执行此操作,但在java中,我会创建一个接口或扩展它,然后创建函数there@Daniel:是的,我的问题是如何在javascript中正确执行;)我知道,只是提出一些想法:我不知道如何在javascript中做到这一点,但在java中,我会创建一个接口或扩展它,然后创建函数there@Daniel:是的,我的问题是如何在javascript中正确执行;)我知道,只是提出一些想法:D+1我非常喜欢配置对象的想法——绝对是非常可扩展的。不过这取决于应用程序。+1我非常喜欢这种配置对象的想法-绝对是非常可扩展的。但这取决于应用程序。