Skip to content

js

js 类用于在 zin 中生成 JS 代码。

继承关系

jsdirective

构造

构造方法

定义

php
public function __construct(null|string|js|array ...$codes);

参数

  • $codes:JS 代码,可以是字符串或 js 对象,也可以是可被忽略的 null,或者是以上类型的数组。

示例:

php
$js1 = new js('console.log("hello world");');

$js2 = new js
(
    'const message = "hello"',
    'const name = "world";',
    new js('console.log(message, name)'),
);

辅助方法

通过与 js 类同名的辅助函数来快速创建 js 对象。

定义

php
function js(null|string|js|array ...$codes): js;

参数

  • $codes:JS 代码,可以是字符串或 js 对象,也可以是可被忽略的 null,或者是以上类型的数组。

返回值

  • js 对象。

例如:

php
js
(
    'const message = "hello"',
    'const name = "world";',
    js('console.log(message, name)'),
);

提示

推荐使用辅助方法 js() 来创建 js 对象,相比较 new js() 语法,辅助方法更加简洁。

属性

定义

php
/** 当前已定义的代码行。 */
protected array $jsLines = array();

方法

__call

魔术方法,用于通过 xxxIf 的方式根据条件调用对象上的 xxx 方法。

定义

php
public function __call(string $name, array $args): self;

call

调用一个函数。

定义

php
public function call(string $func, mixed ...$args): self;

参数

  • $func:要调用的 JS 函数名或函数表达式。
  • $args:要传递给函数的参数,这些参数会在传递前依次转换 JSON。

返回值

  • self 自身,支持链式调用。

示例:

php
js()->call('console.log', 'hello world');
// 等价于:js('console.log("hello world");');

do

执行一段 JS 代码。

定义

php
public function do(null|string|js|array ...$codes): self;

参数

  • $codes:JS 代码,可以是字符串或 js 对象,也可以是以上类型的数组,如果是 null 则被忽略。

返回值

  • self 自身,支持链式调用。

示例:

php
js()->do('console.log("hello world");');

let

定义一个 JS 变量。

定义

php
public function let(string $name, mixed $value): self;

参数

  • $name:变量名。
  • $value:变量值,会在传递前转换 JSON。

返回值

  • self 自身,支持链式调用。

const

定义一个 JS 常量。

定义

php
public function const(string $name, mixed $value): self;

参数

  • $name:常量名。
  • $value:常量值,会在传递前转换 JSON。

返回值

  • self 自身,支持链式调用。

globalVar

定义一个全局变量。

定义

php
public function globalVar(string $name, mixed $value): self;

参数

  • $name:变量名。
  • $value:变量值,会在传递前转换 JSON。

返回值

  • self 自身,支持链式调用。

beginIf

开始一个 if 语句块。

定义

php
public function beginIf(string ...$conditions): self;

参数

  • $conditions:if 语句块的条件,可以是多个条件,多个条件之间为 && 关系。

返回值

  • self 自身,支持链式调用。

elseIf

else if 语句块。

定义

php
public function elseIf(string ...$conditions): self;

参数

  • $conditions:else if 语句块的条件,可以是多个条件,多个条件之间为 && 关系。

返回值

  • self 自身,支持链式调用。

else

else 语句块。

定义

php
public function else(): self;

返回值

  • self 自身,支持链式调用。

endIf

结束一个 if 语句块。

定义

php
public function endIf(): self;

返回值

  • self 自身,支持链式调用。

scopeBegin

开始一个立即执行函数实现的作用域。

定义

php
public function scopeBegin(): self;

返回值

  • self 自身,支持链式调用。

scopeEnd

结束一个立即执行函数实现的作用域。

定义

php
public function scopeEnd(): self;

返回值

  • self 自身,支持链式调用。

appendLine

追加一行 JS 代码。

定义

php
public function appendLine(string ...$code): self;

参数

  • $code:JS 代码,可以使用多个参数指定代码的部分,最终会通过空格拼接为一行。

返回值

  • self 自身,支持链式调用。

appendLines

追加多行 JS 代码。

定义

php
public function appendLines(null|string|js|array ...$lines): self;

参数

  • $lines:JS 代码,可以是字符串或 js 对象,也可以是以上类型的数组,如果是 null 则被忽略。

返回值

  • self 自身,支持链式调用。

appendCode

追加一段 JS 代码。

定义

php
public function appendCode(null|string|js|array ...$codes): self;

参数

  • $codes:JS 代码,可以是字符串或 js 对象,也可以是以上类型的数组,如果是 null 则被忽略。

返回值

  • self 自身,支持链式调用。

toJS

转换为 JS 代码。

定义

php
public function toJS(string $joiner = "\n"): string;

参数

  • $joiner:代码行之间的连接符,默认为换行符。

返回值

  • string 返回转换后的 JS 代码。

toScopeJS

转换为包装了立即执行函数实现的作用域的 JS 代码。

定义

php
public function toScopeJS(string $joiner = "\n"): string;

参数

  • $joiner:代码行之间的连接符,默认为换行符。

返回值

  • string 返回转换后的 JS 代码。

静态成员

__callStatic

魔术方法,用于创建 window 对象上的成员辅助访问对象。

定义

php
public static function __callStatic(string $name, array $args): jsContext;

参数

  • $namewindow 对象上的成员名称。
  • $args:如果有指定参数,则将成员作为函数进行调用,并将参数作为所调用的函数参数。

返回值

scope

使用立即执行函数作用域包装 JS 代码以实现独立的作用域。

定义

php
public static function scope(null|string|js|array ...$codes): string;

参数

  • $codes:JS 代码,可以是字符串或 js 对象,也可以是以上类型的数组,如果是 null 则被忽略。

返回值

  • string 返回包装后的 JS 代码。

json

将 PHP 变量转换为 JSON 字符串。

定义

php
public static function json(mixed $var): string;

参数

  • $var:要转换的 PHP 变量。

返回值

  • string 返回转换后的 JSON 字符串。

context

创建给定 JS 值的上下文操作辅助对象 jsContext

定义

php
public static function context(mixed $value, null|string|bool $name = null, null|string|js|array ...$codes): jsContext

参数

  • $value:要创建上下文操作辅助对象的 JS 值。
  • $name:上下文操作辅助对象的名称,如果为 null 则自动生成。
  • $codes:初始化的 JS 代码,可以是字符串或 js 对象,也可以是以上类型的数组,如果是 null 则被忽略。

返回值

zui

创建 window.zui 的上下文操作辅助对象 jsContext

定义

php
public static function zui(?string $name = null): jsContext

参数

  • $namewindow.zui 对象上的成员名称,如果为 null 则返回 window.zui 的上下文操作辅助对象。

返回值

jquery

创建 jQuery 辅助操作实例 jQuery

定义

php
public static function jquery(string $selector, ?string $name = null, null|string|js|array ...$codes): jquery

参数

  • $selector:jQuery 选择器。
  • $name:jQuery 对象上的成员名称,如果为 null 则返回 jQuery 辅助操作实例 jQuery
  • $codes:初始化的 JS 代码,可以是字符串或 js 对象,也可以是以上类型的数组,如果是 null 则被忽略。

返回值

callback

创建 js 回调函数代码生成对象实例 jsCallback

定义

php
public static function callback(string ...$args): jsCallback

参数

  • $args:回调函数的参数列表。

返回值

https://zentao.net