1
2
这是(对)调用函数的对象。
所以在你
事实是
更具体地说,变量
|
2
1
打电话是不对的
JavaScript只是一种不同的语言,它以不同的方式进行操作。那
而且,除非您没有发布的其他东西正在为“f”设置原型对象,否则代码绝对不起作用。“method”和“method2”都不能从对“f”实例的引用中调用。 |
3
1
对于方法的定义,您可能希望执行以下操作:
|
4
1
这就是你要找的例子吗?
在方法的情况下,它调用使用self的helper,该helper在创建时指向f,因此可以工作。 在method2的情况下,它使用helper2,helper2使用这个方法。但是在helper2中,这个函数的含义是“全局”范围,因此返回未定义的值。 |
5
1
事实证明,这是ecmascript(因此是javascript)的ecma规范的一个黑暗角落:
(http://jibbering.com/faq/notes/closures/;感谢@brian flanagan提供链接)
显然,在执行分配给变量的函数时(在另一个变量中
我不太确定这是否是
这种行为不同于
财产
A的
此问题的解决方案(同时保持私有
这和
编辑:
在中忘记了带括号的函数
|
Tor · 使用Box<None>值初始化struct 2 年前 |
Judy · 在两个JavaScript函数中更新全局变量 2 年前 |
ask_me · Python中关于局部和全局范围的概念性问题 2 年前 |
Astha Gupta · 闭包中的词汇作用域是如何发生的?[重复] 2 年前 |
Empha · 从成员函数对对象所做的更改不会持续。范围/参考问题? 6 年前 |
pag-r · Golang开关变量范围 6 年前 |
yurnero · MATLAB:“加载”一个快速访问功能 6 年前 |