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 互操作进行调用,并将 JavaScript this 作为第一个参数传递。
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被拒绝时抛出的异常,拒绝值为nullundefined