0%

学习笔记 2020 11 27

学习笔记 2020-11-27

JavaScript 高级程序设计(第4版) 阅读记录

表单脚本

富文本编辑

富文本选择
  • getSelection()
    • anchorNode
    • anchorOffset
    • focusNode
    • focusOffset
    • isCollapsed
    • rangeCount
    • addRange()
    • collapse(node, offset)
    • collapseToEnd()
    • collapseToStart()
    • containsNode()
    • deleteFromDocument()
    • extend()
    • getRangeAt()
    • removeAllRanges()
    • removRange(range)
    • selectAllChildren()
    • toString()
通过表单提交富文本

现代 JavaScript 教程

原生的原型

任务

  1. 给函数添加一个 “f.defer(ms)” 方法

    在所有函数的原型中添加 defer(ms) 方法,该方法将在 ms 毫秒后运行该函数。

    当你完成添加后,下面的代码应该是可执行的:

    function f() {
      alert("Hello!");
    }
    
    f.defer(1000); // 1 秒后显示 "Hello!"
    Function.prototype.defer = function (time) {
      setTimeout(this, time);
    };
  2. 将装饰器 “defer()” 添加到函数

    在所有函数的原型中添加 defer(ms) 方法,该方法返回一个包装器,将函数调用延迟 ms 毫秒。

    下面是它应该如何执行的例子:

    function f(a, b) {
      alert( a + b );
    }
    
    f.defer(1000)(1, 2); // 1 秒后显示 3

    请注意,参数应该被传给原始函数。

    Function.prototype.defer = function (time) {
      let that = this;
      return function (...args) {
        setTimeout(() => that.apply(this, args), time);
      };
    };