JS对象(JS Objects)

在使用JS工作时,有一些对象和方法会被频繁的使用。下面是它们的一个小的集合。

  • Math.floor(v),Math.ceil(v),Math.round(v) - 从浮点数获取最大,最小和随机整数
  • Math.random() - 创建一个在0到1之间的随机数
  • Object.keys(o) - 获取对象的索引值(包括QObject)
  • JSON.parse(s), JSON.stringify(o) - 转换在JS对象和JSON字符串
  • Number.toFixed(p) - 修正浮点数精度
  • Date - 日期时间操作

你可以可以在这里找到它们的使用方法:JavaScript reference

You can find them also at: JavaScript reference

下面有一些简单的例子演示了如何在QML中使用JS。会给你一些如何在QML中使用JS一些启发。

打印所有项的键(Print all keys from QML Item)

  1. Item {
  2. id: root
  3. Component.onCompleted: {
  4. var keys = Object.keys(root);
  5. for(var i=0; i<keys.length; i++) {
  6. var key = keys[i];
  7. // prints all properties, signals, functions from object
  8. console.log(key + ' : ' + root[key]);
  9. }
  10. }
  11. }

转换一个对象为JSON字符串并反转转换(Parse an object to a JSON string and back

  1. Item {
  2. property var obj: {
  3. key: 'value'
  4. }
  5. Component.onCompleted: {
  6. var data = JSON.stringify(obj);
  7. console.log(data);
  8. var obj = JSON.parse(data);
  9. console.log(obj.key); // > 'value'
  10. }
  11. }

当前时间(Current Date)

  1. Item {
  2. Timer {
  3. id: timeUpdater
  4. interval: 100
  5. running: true
  6. repeat: true
  7. onTriggered: {
  8. var d = new Date();
  9. console.log(d.getSeconds());
  10. }
  11. }
  12. }

使用名称调用函数(Call a function by name)

  1. Item {
  2. id: root
  3. function doIt() {
  4. console.log("doIt()")
  5. }
  6. Component.onCompleted: {
  7. // Call using function execution
  8. root["doIt"]();
  9. var fn = root["doIt"];
  10. // Call using JS call method (could pass in a custom this object and arguments)
  11. fn.call()
  12. }
  13. }