jsCallback
jsCallback
类用于生成 js 函数代码的助手,可以方便定义 JS 回调函数。
构造
构造方法
定义
php
public function __construct(string ...$args)
参数
$args
:JS 回调函数的参数名称列表。
示例:
php
$callback = new jsCallback('message', 'name');
$callback->name('showMessage')->do
(
'console.log(message, name)',
);
$callback->toJS(); // 输出:function showMessage(message, name) {console.log(message, name)}
辅助方法
通过与 jsCallback
类同名的辅助函数来快速创建 jsCallback
对象。
定义
php
function jsCallback(string ...$args): jsCallback;
参数
$args
:JS 回调函数的参数名称列表。
返回值
jsCallback
对象。
例如:
php
jsCallback('message', 'name')
->name('showMessage')
->do
(
'console.log(message, name)'
);
提示
推荐使用辅助方法 jsCallback()
来创建 jsCallback
对象,相比较 new jsCallback()
语法,辅助方法更加简洁。
属性
$funcName
JS 回调函数的名称,定义:
php
public ?string $funcName = null;
$funcArgs
JS 回调函数的参数名称列表,定义:
php
public array $funcArgs = array();
$isArrowFunc
是否为箭头函数,定义:
php
public bool $isArrowFunc = false;
方法
name
设置函数名称。
定义
php
public function name(?string $name): self
参数
$name
:函数名称,如果为null
则不设置名称。
返回值
self
自身,支持链式调用。
args
设置函数参数名称列表。
定义
php
public function args(string ...$args): self
参数
$args
:函数参数名称列表。
返回值
self
自身,支持链式调用。
arrow
设置是否使用箭头函数。
定义
php
public function arrow(bool $arrow = true): self
参数
$arrow
:是否使用箭头函数。
返回值
self
自身,支持链式调用。
buildBody
构建函数体 JS 代码。
定义
php
public function buildBody(string $joiner = "\n"): string
参数
$joiner
:函数体代码的连接符。
返回值
string
函数体 JS 代码。
returnData
添加 return 语句。
定义
php
public function returnData(mixed $data = null): self
参数
$data
:要返回的数据。
返回值
self
自身,支持链式调用。
toVar
转换为变量。
定义
php
public function toVar(?string $name = null, bool $const = false): string
参数
$name
:变量名称,如果为null
则使用默认名称。$const
:是否为常量。
返回值
string
变量定义代码。
toConst
转换为常量变量,相当于 toVar($name, true)
。
定义
php
public function toConst(?string $name = null): string
参数
$name
:变量名称,如果为null
则使用默认名称。
返回值
string
变量定义代码
静态成员
__callStatic
魔术方法,用于定义函数。
定义
php
public static function __callStatic(string $name, array $args): jsCallback;
参数
$name
:window
对象上的成员名称,将作为函数名称。$args
:如果有指定参数,则将成员作为函数参数。
返回值
jsCallback
对象。
示例:
php
jsCallback::showMessage('message', 'name')
->do
(
'console.log(message, name)'
);