Dal*_*ore 7 javascript function object node.js
解决方案:不.你不能这样做.使用&&进行链命令并完成它.
tl; dr:in random.function("blah").check(),check()如果function("blah")返回false ,如何忽略它?或者这甚至可能吗?
的背景:
好的,所以我对代码很可怕.但是我试图通过编码使我的生活变得轻松的事情来拖延.而我的勉强,我的意思是显微镜.所以基本上,我的整个项目都是基于对象和插件.(插件是包含对象的附加.js文件.例如,afk.js看起来像这样:
global.afk = function(){};
afk.check = function(){ ... };
Run Code Online (Sandbox Code Playgroud)
通过加载该js文件,我可以访问afk对象及其中的所有功能.可能效率不高,但它有效,它可以确定哪些功能更容易做到.
回到拖延位.因为我不知道加载了什么插件,在一些共享核心.js文件中,有这些条件语句:if (plugin.has("afk")) { afk.check(); };但是,我感到无聊并plugin.has()返回实际对象而不是'true',所以我可以这样做:
plugin.has("afk").check();
Run Code Online (Sandbox Code Playgroud)
它按预期工作.除非没有afk插件,否则会抛出"false has no method check"的明显错误.
就是这样.有任何想法吗?此外,如果您有任何疑虑,请告诉我.我知道我做了很多错误/效率低下的事情,而且当我弄清楚它时修复它们很好.
返回的对象应该具有该功能,否则会出现错误。您可以做的是创建一个始终返回的基本对象类型。当你返回它时,它有一个空函数并且不会产生错误。
就像是:
var baseObj = function(){
this.afk = function(){
return this;
}
this.check = function(){
return false;
}
};
var advObj = new baseObj();
advObj.afk = function(){
// extended func
return new baseObj();
}
var a = new advObj();
a.afk("test").check();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1131 次 |
| 最近记录: |