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 逻辑与比较 (&&)。
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和一个实现T外部扩展成员的Dart类U的实例dartMock,创建一个转发模拟。
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
确定给定的对象是 true 或 false。
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
当承诺以 nullundefined 值被拒绝时引发的异常。