Actionscript 这在类';方法/函数与匿名函数中使用的方法/函数?

Actionscript 这在类';方法/函数与匿名函数中使用的方法/函数?,actionscript,Actionscript,为什么在类函数/方法中使用“this”时与在匿名函数中使用“this”时行为不同 比如说 public MyClass { function myfun() { output(this) // << will show the instance of this class but not myfun() function abc = function () { output ( thi

为什么在类函数/方法中使用“this”时与在匿名函数中使用“this”时行为不同

比如说

public MyClass 
{

     function myfun()
     {
        output(this) // << will show the instance of this class but not myfun() function

        abc = function ()
        {

            output ( this ) // << will show abc function 
        }

        abc()
     }

}
公共MyClass
{
函数myfun()
{

输出(this)//虽然具体的名称在不同语言之间会有所不同,但匿名内联方法背后的一般思想是编译器将创建一个新类(可能给出一些随机名称,仅供自己使用),该类内将有一个方法(同样,可能给出一些自动生成的名称供自己使用)该方法将完成匿名方法的工作。然后在匿名方法的原始调用站点中,它创建编译器生成的类的实例,并调用该类中的相应方法


因此,该匿名方法的定义实际上将从另一个类型中调用,而不是从声明匿名方法的类型中调用。

虽然具体的定义在不同的语言中有所不同,但匿名内联方法背后的一般思想是编译器将创建一个新类(可能给出一些随机名称,仅供自己使用),该类内部将有一个方法(同样,可能给出一些自动生成的名称供自己使用)该方法将完成匿名方法的工作。然后在匿名方法的原始调用站点中,它创建编译器生成的类的实例,并调用该类中的相应方法


因此,该匿名方法的定义实际上将从另一个类型中调用,而不是从声明匿名方法的类型中调用。

虽然具体的定义在不同的语言中有所不同,但匿名内联方法背后的一般思想是编译器将创建一个新类(可能给出一些随机名称,仅供自己使用),该类内部将有一个方法(同样,可能给出一些自动生成的名称供自己使用)该方法将完成匿名方法的工作。然后在匿名方法的原始调用站点中,它创建编译器生成的类的实例,并调用该类中的相应方法


因此,该匿名方法的定义实际上将从另一个类型中调用,而不是从声明匿名方法的类型中调用。

虽然具体的定义在不同的语言中有所不同,但匿名内联方法背后的一般思想是编译器将创建一个新类(可能给出一些随机名称,仅供自己使用),该类内部将有一个方法(同样,可能给出一些自动生成的名称供自己使用)该方法将完成匿名方法的工作。然后在匿名方法的原始调用站点中,它创建编译器生成的类的实例,并调用该类中的相应方法


因此,该匿名方法的定义实际上将从另一个类型中调用,而不是从声明该匿名方法的类型中调用。

您用什么语言进行了测试?我不确定哪种语言甚至支持这种匿名函数。Ecmascript Decents(如javascript和actionscript)具有匿名的概念functions@VishwasGagrani但是ECMAScript/JavaScript没有类,那么这是什么语言呢?如果顶层是
函数bla(){
而不是
公共MyClass,我可以用JavaScript解释这一点{
,但实际上我不知道这段代码确切指的是什么。@Jimmy:Actionscript 3.0既有类函数又有匿名函数。@VishwasGagrani和C#以及其他许多语言一样,但这不是语言不可知论,因为您所说的行为在语言中并不常见。“这”在JavaScript中基于作用域深度的更改,但在我知道的任何有类的语言中(除了ActionScript?)你是用什么语言测试的?我不确定哪种语言支持这种匿名函数。像javascript和actionscript这样的Ecmascript Decents都有匿名的概念functions@VishwasGagrani但是ECMAScript/JavaScript没有类,那么这里是什么语言呢?如果顶层是l有
函数bla(){
而不是
公共MyClass{
,但实际上我不知道这段代码确切指的是什么。@Jimmy:Actionscript 3.0既有类函数又有匿名函数。@VishwasGagrani和C#以及其他许多语言一样,但这不是语言不可知论,因为您所说的行为在语言中并不常见。“这”在JavaScript中基于作用域深度的更改,但在我知道的任何有类的语言中(除了ActionScript?)你是用什么语言测试的?我不确定哪种语言支持这种匿名函数。像javascript和actionscript这样的Ecmascript Decents都有匿名的概念functions@VishwasGagrani但是ECMAScript/JavaScript没有类,那么这里是什么语言呢?如果顶层是l有
函数bla(){
而不是
公共MyClass{
,但实际上我不知道这段代码确切指的是什么。@Jimmy:Actionscript 3.0既有类函数又有匿名函数。@VishwasGagrani和C#以及其他许多语言一样,但这不是语言不可知论,因为您所说的行为在语言中并不常见。“这”在JavaScript中基于作用域深度的更改,但在我知道的任何有类的语言中(除了ActionScript?)你是用什么语言测试的?我不确定哪种语言支持这种匿名函数。像javascript和actionscript这样的Ecmascript Decents都有匿名的概念functions@VishwasGagraniB