PHP的JavaScript/TypeScript equiralvant';类常量
PHP有一些内置的魔法常量,其中一个是PHP的JavaScript/TypeScript equiralvant';类常量,javascript,typescript,Javascript,Typescript,PHP有一些内置的魔法常量,其中一个是::class。由于我正在使用NodeJS+TypeScript构建越来越多的应用程序,我想知道下面的PHP代码的JavaScript/TypeScript等价物是什么 我尝试使用下面的方法,但这显然不是一个正确的数组值 那么如何调用该方法呢?在PHP中,符号与JS中的值不同。我们不能在PHP中传递类,只能传递它们的名称。这在PHP中有效,因为类名是全局唯一的(包括名称空间) 在Javascript中,类是“第一类”,并且与它们的名称断开连接。它们不是全球唯
::class
。由于我正在使用NodeJS+TypeScript构建越来越多的应用程序,我想知道下面的PHP代码的JavaScript/TypeScript等价物是什么
我尝试使用下面的方法,但这显然不是一个正确的数组值
那么如何调用该方法呢?在PHP中,符号与JS中的值不同。我们不能在PHP中传递类,只能传递它们的名称。这在PHP中有效,因为类名是全局唯一的(包括名称空间) 在Javascript中,类是“第一类”,并且与它们的名称断开连接。它们不是全球唯一的。所以这个前提对我来说没有多大意义。您不应该只传递名称,因为仅使用名称无法确定它是什么类 然而,这里有一些类似于你需要的东西 如果我们将
[class,staticMethod]
结构视为您希望能够调用的单个值,那么最简单的方法是使用:
const callable = Foo.method;
// callable
callable();
这在Javascript中非常自然。在PHP中,用于引用可调用对象的数组语法有点不成熟,因此它不是您真正想要复制的模型
如果出于某种原因,您希望有一个具有方法名和对其类的引用的值,则不需要按名称执行(这不是全局唯一的),而是按引用执行
const callable = [Foo, 'method'];
// Call it:
callable[0][callable[1]]();
进入一门新的语言,重复使用你从旧语言中习惯的模式是很诱人的;但Javascript模型有着显著的不同。无论您实际想要实现什么,可能都有一个对JS更自然的解决方案。在PHP中,符号与JS中的值不同。我们不能在PHP中传递类,只能传递它们的名称。这在PHP中有效,因为类名是全局唯一的(包括名称空间) 在Javascript中,类是“第一类”,并且与它们的名称断开连接。它们不是全球唯一的。所以这个前提对我来说没有多大意义。您不应该只传递名称,因为仅使用名称无法确定它是什么类 然而,这里有一些类似于你需要的东西 如果我们将
[class,staticMethod]
结构视为您希望能够调用的单个值,那么最简单的方法是使用:
const callable = Foo.method;
// callable
callable();
这在Javascript中非常自然。在PHP中,用于引用可调用对象的数组语法有点不成熟,因此它不是您真正想要复制的模型
如果出于某种原因,您希望有一个具有方法名和对其类的引用的值,则不需要按名称执行(这不是全局唯一的),而是按引用执行
const callable = [Foo, 'method'];
// Call it:
callable[0][callable[1]]();
进入一门新的语言,重复使用你从旧语言中习惯的模式是很诱人的;但Javascript模型有着显著的不同。无论您实际想要实现什么,都可能有一个对JS更自然的解决方案。
method=Foo.prototype.method
。然后,您可以method(param1,param2)
或method.call(someObject,param1,param2)
假设它是一个静态方法-只需执行Foo['method']()
method=Foo.prototype.method
。然后您可以method(param1,param2)
或method.call(someObject,param1,param2)
假设它是一个静态方法-只需执行Foo['method']()