# JS对象
在使用JS时,有一些更常用的对象和方法。 下面是它们中的一小部分:
Math.floor(v)
,Math.ceil(v)
,Math.round(v)
- 获取此float值的最大、最小和四舍五入的值Math.random()
- 创建一个在0到1之间的随机数Object.keys(o)
- 从对象(包括 QObject)中获取键JSON.parse(s)
,JSON.stringify(o)
- 在JS对象与JSON字符串之间转换Number.toFixed(p)
- 固定精度的浮点数Date
- 日期操作
还可以在以下位置找到它们:JavaScript 参考(JavaScript reference) (opens new window)
这里有一些关于如何将JS与QML一起使用的小而有限的示例。 它们应该让人了解如何在QML中使用JS :
# 从QML项中打印出所有的键
Item {
id: root
Component.onCompleted: {
var keys = Object.keys(root);
for(var i=0; i<keys.length; i++) {
var key = keys[i];
// prints all properties, signals, functions from object
console.log(key + ' : ' + root[key]);
}
}
}
# 将对象解析成JSON字符串和反解析
Item {
property var obj: {
key: 'value'
}
Component.onCompleted: {
var data = JSON.stringify(obj);
console.log(data);
var obj = JSON.parse(data);
console.log(obj.key); // > 'value'
}
}
# 当前数据
Item {
Timer {
id: timeUpdater
interval: 100
running: true
repeat: true
onTriggered: {
var d = new Date();
console.log(d.getSeconds());
}
}
}
# 使用名称调用函数
Item {
id: root
function doIt() {
console.log("doIt()")
}
Component.onCompleted: {
// Call using function execution
root["doIt"]();
var fn = root["doIt"];
// Call using JS call method (could pass in a custom this object and arguments)
fn.call()
}
}