不可拓展对象:
preventExtensions(想要禁止拓展的对象):这个是Object的静态方法,它可以用于禁止对象的拓展,也就是一旦用了这个方法,相对应的对象就不能在添加属性。但是可以修改和删除原有属性。
isExtensible(测试的对象):这个是Object的静态方法,用于测试相对应的对象是否可以拓展。true是可拓展,false是不可拓展。
密封的对象:
seal(想要密封的对象):这个是Object的静态方法,它可以用于密封某个对象。可以让对象不能再添加属性和删除原有属性,但是可以修改原有属性。
isSealed(测试的对象):这个是Object的静态方法,用于测试相对应的对象是否被密封。被密封了返回true,否则返回false。
冻结的对象:
freeze(想要冻结的对象):这个是Object的静态方法,它可以用于冻结某个对象。可以让对象不能再添加属性和删除原有属性以及修改原有属性。
isFrozen(测试的对象):这个是Object的静态方法,用于测试相对应的对象是否被冻结。被冻结了返回true,否则返回false。
函数节流:
类似于在给浏览器监听resize事件时,如果尝试进行dom操作,可能会造成浏览器崩溃。在监听这个事件时,可以使用定时器对该函数进行节流。其基本思想是在在第一次运行函数时,创建一个定时器,在指定的时间间隔以后运行代码。当第二次运行函数时,如果前面一个定时器还存在,那就清除前一个定时器,重新创建一个定时器。目的只有在执行函数的请求停止了一段时间之后才执行。可以使用以下函数来实现:
function throttle(method, …args) {
if (method.tid) {
clearTimeout(method.tid);
}
method.tid = setTimeout(() => {
method(…args);
}, 100)
}