Actionscript 这在类';方法/函数与匿名函数中使用的方法/函数?
为什么在类函数/方法中使用“this”时与在匿名函数中使用“this”时行为不同 比如说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
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