javascript - javascript:类方法访问深层函数
问题描述
是否可以从 MyObjGraph 的实例访问方法/函数 m1?提前感谢您的回答
class MyObjGraph
{
constructor(id)
{
this.drawGraph(id);
}
drawGraph(id)
{
var inId = id;
function m1()
{
alert(inId);
}
}
}
解决方案
如果您可以稍微修改代码,则可以将内部方法暴露给“外部”:
class MyObjGraph {
constructor(id) {
this.drawGraph(id);
}
drawGraph(id){
var inId = id;
function m1(){
alert(inId);
}
return { // <-------- return an object of everything you want to be exposed
m1
}
}
}
const instance = new MyObjGraph();
instance.drawGraph("123").m1()
解释:
在您的原始代码中,该方法drawGraph
不返回任何内容,因此它只执行代码,而其中的任何内容都无法访问。
对于可以直接从函数访问的任何内容,该函数需要有一个return
语句,因此当您调用该函数时,您会在“return”中得到一些东西......并且在下面的这种情况下,它是一个具有单个属性的对象:(m1
参考m1
内部函数)
推荐阅读
- python-3.x - 在字典中添加字典
- java - Spring boot - 使用@PropertySource 记录到文件不起作用
- assembly - 程序集 32 位保护模式,标签不指向定义的字符串?
- python - 如何在 Django ManyToMany 字段中选择相同的对象两次
- javascript - 如何使用 Mongoose 将增量数字附加到 Slug?
- php - 用 PHP 反应应用程序。Dockerfile 实现
- sql - 在 R 中使用选择创建子集
- javascript - 用单词前后的特殊字符替换单词
- mathematical-optimization - 最大化调度问题的相同操作模式的连续天数
- docker - docker 容器中的 GUI 菜单冻结(ubuntu 父映像)