dart:js_util 库
提供实用方法来操作已知运行时名称的 package:js
标记的 JavaScript 互操作对象。
注意
通常应使用 dart:js_interop
而不是此库。了解更多信息,请参阅 JS 互操作文档。
只有当无法使用 @JS()
注解实现相同效果时,才应使用这些方法。
属性
- globalThis → Object
-
没有设置器
- objectPrototype → Object?
- 返回
Object
原型。等同于Object.prototype
。没有设置器
函数
-
add<
T> (Object? first, Object? second) → T - 在两个值上执行 JavaScript 加法 (
+
)。 -
allowInterop<
F extends Function> (F f) → F - 返回一个包装函数
f
的包装器,可以从 JavaScript 使用package:js
JavaScript 互操作进行调用。 -
allowInteropCaptureThis(
Function f) → Function - 返回一个包装函数
f
的包装器,可以从 JavaScript 使用package:js
JavaScript 互操作进行调用,并将 JavaScriptthis
作为第一个参数传递。 -
and<
T> (Object? first, Object? second) → T - 执行两个表达式的 JavaScript 逻辑 AND 比较运算 (
&&
)。 -
callConstructor<
T> (Object constr, List< Object?> ? arguments) → T -
callMethod<
T> (Object o, Object method, List< Object?> args) → T -
createDartExport<
T extends Object> (T dartObject) → Object - 给定一个标记为可导出的 Dart 对象,创建一个指向该 Dart 类的 JS 对象字面量。查看
@JSExport
注释,以确定 Dart 类的“可导出”构成。该对象字面量将是导出名称(可以是实例成员的名称或其别名)到相应的 Dart 实例成员的映射。 -
createStaticInteropMock<
T extends Object, U extends Object> (U dartMock, [Object? proto = null]) → T - 给定一个
@staticInterop
类型 T 和一个 Dart 类 U 的实例dartMock
(该 U 类实现了 T 的外部扩展成员),创建一个转发模拟。 -
dartify(
Object? o) → Object? - 实际上是 jsify 的逆,dartify 将一个 JavaScript 对象转换为 Dart 基于对象。只支持 JS 基本类型、数组或类似 JS 的 'map' 对象。
-
delete<
T> (Object o, Object property) → bool - 在给定对象的给定属性上执行 JavaScript 删除运算符 (
delete
)。 -
divide<
T> (Object? first, Object? second) → T - 对两个值执行 JavaScript 除法运算 (
/
)。 -
equal<
T> (Object? first, Object? second) → bool - 对两个值执行 JavaScript 相等比较 (
==
)。 -
exponentiate<
T> (Object? first, Object? second) → T - 对两个值执行 JavaScript 幂运算 (
**
)。 -
getProperty<
T> (Object o, Object name ) → T -
greaterThan<
T> (Object? first, Object? second ) → bool - 执行两个值之间的JavaScript大于比较(
>
)。 -
greaterThanOrEqual<
T> (Object? first, Object? second ) → bool - 执行两个值之间的JavaScript大于等于比较(
>=
)。 -
hasProperty(
Object o, Object name ) → bool -
instanceof(
Object? o, Object type ) → bool - 检查对象
o
是否为type
的实例。 -
instanceOfString(
Object? element, String objectType ) → bool - 类似于 instanceof,但它只接受一个 String 作为对象名称,而不是构造函数对象。
-
isJavaScriptArray(
dynamic value) → bool - 如果给定的对象是JavaScript数组,则返回
true
。 -
isJavaScriptSimpleObject(
dynamic value) → bool - 如果给定的对象是简单的JavaScript对象,则返回
true
。 -
isTruthy<
T> (Object? o) → bool - 确定给定的对象是非真值还是假值。
-
jsify(
Object? object ) → dynamic - 递归地将类似JSON的集合转换为JavaScript兼容的表示。
-
lessThan<
T> (<Object? first, Object? second ) → bool - 执行两个值之间的JavaScript小于比较(
<
)。 -
lessThanOrEqual<
T> (<Object? first, Object? second ) → bool - 执行两个值之间的JavaScript小于等于比较(
<=
)。 -
modulo<
T> (<Object? first, Object? second ) → T - 执行两个值之间的JavaScript余数(
%
)。 -
multiply<
T> (<Object? first, Object? second ) → T - 执行两个值之间的JavaScript乘法(
*
)。 -
newObject<
T> () → T -
not<
T> (<Object? o ) → T - 对给定对象执行JavaScript逻辑非(
!
)操作。 -
notEqual<
T> (<Object? first, Object? second ) → bool - 执行两个值之间的JavaScript不等比较(
!=
)。 -
objectGetPrototypeOf(<
Object? object ) → Object? - 返回给定对象的原型。等同于
Object.getPrototypeOf
。 -
objectKeys(<
Object? object ) → List<Object?> - 返回给定对象的键。等同于
Object.keys(object)
。 -
or<
T> (Object? first, Object? second <)) → T - 对两个表达式执行JavaScript逻辑或比较(
||
)。 -
promiseToFuture<
T> (Object jsPromise) → Future< T> - 将JavaScript Promise转换为Dart Future。
-
setProperty<
T> (Object o, Object name, T? value) → T -
strictEqual<
T> (Object? first, Object? second ) → bool - 对两个值执行JavaScript严格相等比较(
===
)。 -
strictNotEqual<
T> (Object? first, Object? second ) → bool - 对两个值执行JavaScript严格不等比较(
!==
)。 -
subtract<
T> (Object? first, Object? second ) → T - 对两个值执行JavaScript减法(
-
)。 -
typeofEquals<
T> (Object? o, String type) → bool - 在给定对象上执行JavaScript
typeof
操作符并确定结果是否等于给定类型。向浏览器优化打开整个typeof
相等表达式。 -
unsignedRightShift(
Object? leftOperand, Object? rightOperand) → num - 在给定的左操作数上执行JavaScript无符号右移运算符(
>>>
),移动次数由给定的右操作数指定。
异常 / 错误
- NullRejectionException
- 当promise被拒绝时抛出的异常,拒绝值为
null
或undefined
。