doc: update javascript.md (#243) afd924a928

This commit is contained in:
jaywcjlove
2022-12-21 10:21:22 +00:00
parent 472e813ea9
commit 93240e428d
2 changed files with 9 additions and 7 deletions

View File

@ -1114,7 +1114,7 @@
<table><thead><tr><th align="left">:-</th><th align="left">:-</th></tr></thead><tbody><tr><td align="left"><code>Proxy.revocable()</code></td><td align="left">创建一个可撤销的Proxy对象<a href="https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Proxy/revocable">#</a></td></tr></tbody></table>
<table><thead><tr><th align="left">:-</th><th align="left">:-</th></tr></thead><tbody><tr><td align="left"><code>Proxy.revocable()</code></td><td align="left">创建一个可撤销的Proxy对象 <a href="https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Proxy/revocable">#</a></td></tr></tbody></table>
<h4 id="handler-对象的方法"><a aria-hidden="true" tabindex="-1" href="#handler-对象的方法"><span class="icon icon-link"></span></a>handler 对象的方法</h4>
@ -1177,7 +1177,8 @@
<table><thead><tr><th align="left">:-</th><th align="left">:-</th></tr></thead><tbody><tr><td align="left"><code>handler.getPrototypeOf()</code></td><td align="left">Object.getPrototypeOf 方法的捕捉器<a href="https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Proxy/Proxy/getPrototypeOf">#</a></td></tr><tr><td align="left"><code>handler.setPrototypeOf()</code></td><td align="left">Object.setPrototypeOf 方法的捕捉器<a href="https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Proxy/Proxy/setPrototypeOf">#</a></td></tr><tr><td align="left"><code>handler.isExtensible()</code></td><td align="left">Object.isExtensible 方法的捕捉器<a href="https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Proxy/Proxy/isExtensible">#</a></td></tr><tr><td align="left"><code>handler.preventExtensions()</code></td><td align="left">Object.preventExtensions 方法的捕捉器<a href="https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Proxy/Proxy/preventExtensions">#</a></td></tr><tr><td align="left"><code>handler.getOwnPropertyDescriptor()</code></td><td align="left">Object.getOwnPropertyDescriptor 方法的捕捉器<a href="https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Proxy/Proxy/getOwnPropertyDescriptor">#</a></td></tr><tr><td align="left"><code>handler.defineProperty()</code></td><td align="left">Object.defineProperty 方法的捕捉器<a href="https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Proxy/Proxy/defineProperty">#</a></td></tr><tr><td align="left"><code>handler.has()</code></td><td align="left">in 操作符的捕捉器<a href="https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Proxy/Proxy/has">#</a></td></tr><tr><td align="left"><code>handler.get()</code></td><td align="left">属性读取操作的捕捉器<a href="https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Proxy/Proxy/get">#</a></td></tr><tr><td align="left"><code>handler.set()</code></td><td align="left">属性设置操作的捕捉器<a href="https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Proxy/Proxy/set">#</a></td></tr><tr><td align="left"><code>handler.deleteProperty()</code></td><td align="left">delete 操作符的捕捉器<a href="https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Proxy/Proxy/deleteProperty">#</a></td></tr><tr><td align="left"><code>handler.ownKeys()</code></td><td align="left">Object.getOwnPropertyNames 方法和 Object.getOwnPropertySymbols 方法的捕捉器<a href="https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Proxy/Proxy/ownKeys">#</a></td></tr><tr><td align="left"><code>handler.apply()</code></td><td align="left">函数调用操作的捕捉器<a href="https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Proxy/Proxy/apply">#</a></td></tr><tr><td align="left"><code>handler.construct()</code></td><td align="left">new 操作符的捕捉器<a href="https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Proxy/Proxy/construct">#</a></td></tr></tbody></table>
<table class="style-list-arrow"><thead><tr><th align="left">:-</th><th align="left">:-</th></tr></thead><tbody><tr><td align="left"><code>handler.getPrototypeOf()</code></td><td align="left">Object.getPrototypeOf 方法的捕捉器 <a href="https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Proxy/Proxy/getPrototypeOf">#</a></td></tr><tr><td align="left"><code>handler.setPrototypeOf()</code></td><td align="left">Object.setPrototypeOf 方法的捕捉器 <a href="https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Proxy/Proxy/setPrototypeOf">#</a></td></tr><tr><td align="left"><code>handler.isExtensible()</code></td><td align="left">Object.isExtensible 方法的捕捉器 <a href="https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Proxy/Proxy/isExtensible">#</a></td></tr><tr><td align="left"><code>handler.preventExtensions()</code></td><td align="left">Object.preventExtensions 方法的捕捉器 <a href="https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Proxy/Proxy/preventExtensions">#</a></td></tr><tr><td align="left"><code>handler.getOwnPropertyDescriptor()</code></td><td align="left">Object.getOwnPropertyDescriptor 方法的捕捉器 <a href="https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Proxy/Proxy/getOwnPropertyDescriptor">#</a></td></tr><tr><td align="left"><code>handler.defineProperty()</code></td><td align="left">Object.defineProperty 方法的捕捉器 <a href="https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Proxy/Proxy/defineProperty">#</a></td></tr><tr><td align="left"><code>handler.has()</code></td><td align="left">in 操作符的捕捉器 <a href="https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Proxy/Proxy/has">#</a></td></tr><tr><td align="left"><code>handler.get()</code></td><td align="left">属性读取操作的捕捉器 <a href="https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Proxy/Proxy/get">#</a></td></tr><tr><td align="left"><code>handler.set()</code></td><td align="left">属性设置操作的捕捉器 <a href="https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Proxy/Proxy/set">#</a></td></tr><tr><td align="left"><code>handler.deleteProperty()</code></td><td align="left">delete 操作符的捕捉器 <a href="https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Proxy/Proxy/deleteProperty">#</a></td></tr><tr><td align="left"><code>handler.ownKeys()</code></td><td align="left">Object.getOwnPropertyNames 方法和 Object.getOwnPropertySymbols 方法的捕捉器 <a href="https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Proxy/Proxy/ownKeys">#</a></td></tr><tr><td align="left"><code>handler.apply()</code></td><td align="left">函数调用操作的捕捉器 <a href="https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Proxy/Proxy/apply">#</a></td></tr><tr><td align="left"><code>handler.construct()</code></td><td align="left">new 操作符的捕捉器 <a href="https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Proxy/Proxy/construct">#</a></td></tr></tbody></table>
<!--rehype:className=style-list-arrow-->
</div></div></div><div class="wrap h3body-exist"><div class="wrap-header h3wrap"><h3 id="reflect"><a aria-hidden="true" tabindex="-1" href="#reflect"><span class="icon icon-link"></span></a>Reflect</h3><div class="wrap-body">
<p>Reflect 是一个内置的对象,它提供拦截 JavaScript 操作的方法。这些方法与proxy handlers (en-US)的方法相同。Reflect不是一个函数对象因此它是不可构造的。</p>
<pre class="language-javascript"><code class="language-javascript code-highlight"><span class="code-line"><span class="token comment">// 检测一个对象是否存在特定属性</span>
@ -1256,7 +1257,8 @@
<table><thead><tr><th align="left">:-</th><th align="left">:-</th></tr></thead><tbody><tr><td align="left"><code>Reflect.apply(target, thisArgument, argumentsList)</code></td><td align="left">对一个函数进行调用操作,同时可以传入一个数组作为调用参数。和 Function.prototype.apply() 功能类似<a href="https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Reflect/apply">#</a></td></tr><tr><td align="left"><code>Reflect.construct(target, argumentsList[, newTarget])</code></td><td align="left">对构造函数进行 new 操作,相当于执行 new target(...args)<a href="https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Reflect/construct">#</a></td></tr><tr><td align="left"><code>Reflect.defineProperty(target, propertyKey, attributes)</code></td><td align="left">和 Object.defineProperty() 类似。如果设置成功就会返回 true<a href="https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Reflect/defineProperty">#</a></td></tr><tr><td align="left"><code>Reflect.deleteProperty(target, propertyKey)</code></td><td align="left">作为函数的delete操作符相当于执行 delete target[name]<a href="https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Reflect/deleteProperty">#</a></td></tr><tr><td align="left"><code>Reflect.get(target, propertyKey[, receiver])</code></td><td align="left">获取对象身上某个属性的值,类似于 target[name]<a href="https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Reflect/get">#</a></td></tr><tr><td align="left"><code>Reflect.getOwnPropertyDescriptor(target, propertyKey)</code></td><td align="left">类似于 Object.getOwnPropertyDescriptor()。如果对象中存在该属性,则返回对应的属性描述符,否则返回 undefined<a href="https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Reflect/getOwnPropertyDescriptor">#</a></td></tr><tr><td align="left"><code>Reflect.getPrototypeOf(target)</code></td><td align="left">类似于 Object.getPrototypeOf()<a href="https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Reflect/getPrototypeOf">#</a></td></tr><tr><td align="left"><code>Reflect.has(target, propertyKey)</code></td><td align="left">判断一个对象是否存在某个属性,和 in 运算符 的功能完全相同<a href="https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Reflect/has">#</a></td></tr><tr><td align="left"><code>Reflect.isExtensible(target)</code></td><td align="left">类似于 Object.isExtensible().<a href="https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Reflect/isExtensible">#</a></td></tr><tr><td align="left"><code>Reflect.ownKeys(target)</code></td><td align="left">返回一个包含所有自身属性(不包含继承属性)的数组。(类似于 Object.keys(), 但不会受enumerable 影响).<a href="https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Reflect/ownKeys">#</a></td></tr><tr><td align="left"><code>Reflect.preventExtensions(target)</code></td><td align="left">类似于 Object.preventExtensions()。返回一个Boolean<a href="https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Reflect/preventExtensions">#</a></td></tr><tr><td align="left"><code>Reflect.set(target, propertyKey, value[, receiver])</code></td><td align="left">将值分配给属性的函数。返回一个Boolean如果更新成功则返回true<a href="https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Reflect/set">#</a></td></tr><tr><td align="left"><code>Reflect.setPrototypeOf(target, prototype)</code></td><td align="left">设置对象原型的函数。返回一个 Boolean如果更新成功则返回 true<a href="https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Reflect/setPrototypeOf">#</a></td></tr></tbody></table>
<table class="style-list-arrow"><thead><tr><th align="left">:-</th><th align="left">:-</th></tr></thead><tbody><tr><td align="left"><code>Reflect.apply(target, thisArgument, argumentsList)</code></td><td align="left">对一个函数进行调用操作,同时可以传入一个数组作为调用参数。和 Function.prototype.apply() 功能类似 <a href="https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Reflect/apply">#</a></td></tr><tr><td align="left"><code>Reflect.construct(target, argumentsList[, newTarget])</code></td><td align="left">对构造函数进行 new 操作,相当于执行 new target(...args) <a href="https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Reflect/construct">#</a></td></tr><tr><td align="left"><code>Reflect.defineProperty(target, propertyKey, attributes)</code></td><td align="left">和 Object.defineProperty() 类似。如果设置成功就会返回 true <a href="https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Reflect/defineProperty">#</a></td></tr><tr><td align="left"><code>Reflect.deleteProperty(target, propertyKey)</code></td><td align="left">作为函数的delete操作符相当于执行 delete target[name] <a href="https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Reflect/deleteProperty">#</a></td></tr><tr><td align="left"><code>Reflect.get(target, propertyKey[, receiver])</code></td><td align="left">获取对象身上某个属性的值,类似于 target[name] <a href="https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Reflect/get">#</a></td></tr><tr><td align="left"><code>Reflect.getOwnPropertyDescriptor(target, propertyKey)</code></td><td align="left">类似于 Object.getOwnPropertyDescriptor()。如果对象中存在该属性,则返回对应的属性描述符,否则返回 undefined <a href="https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Reflect/getOwnPropertyDescriptor">#</a></td></tr><tr><td align="left"><code>Reflect.getPrototypeOf(target)</code></td><td align="left">类似于 Object.getPrototypeOf() <a href="https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Reflect/getPrototypeOf">#</a></td></tr><tr><td align="left"><code>Reflect.has(target, propertyKey)</code></td><td align="left">判断一个对象是否存在某个属性,和 in 运算符 的功能完全相同 <a href="https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Reflect/has">#</a></td></tr><tr><td align="left"><code>Reflect.isExtensible(target)</code></td><td align="left">类似于 Object.isExtensible() <a href="https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Reflect/isExtensible">#</a></td></tr><tr><td align="left"><code>Reflect.ownKeys(target)</code></td><td align="left">返回一个包含所有自身属性(不包含继承属性)的数组。(类似于 Object.keys(), 但不会受enumerable 影响) <a href="https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Reflect/ownKeys">#</a></td></tr><tr><td align="left"><code>Reflect.preventExtensions(target)</code></td><td align="left">类似于 Object.preventExtensions()。返回一个Boolean <a href="https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Reflect/preventExtensions">#</a></td></tr><tr><td align="left"><code>Reflect.set(target, propertyKey, value[, receiver])</code></td><td align="left">将值分配给属性的函数。返回一个Boolean如果更新成功则返回true <a href="https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Reflect/set">#</a></td></tr><tr><td align="left"><code>Reflect.setPrototypeOf(target, prototype)</code></td><td align="left">设置对象原型的函数。返回一个 Boolean如果更新成功则返回 true <a href="https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Reflect/setPrototypeOf">#</a></td></tr></tbody></table>
<!--rehype:className=style-list-arrow-->
</div></div></div></div></div><div class="wrap h2body-exist"><div class="wrap-header h2wrap"><h2 id="javascript-this-绑定"><a aria-hidden="true" tabindex="-1" href="#javascript-this-绑定"><span class="icon icon-link"></span></a>JavaScript this 绑定</h2><div class="wrap-body">
</div></div><div class="h2wrap-body"><div class="wrap h3body-exist"><div class="wrap-header h3wrap"><h3 id="隐式绑定"><a aria-hidden="true" tabindex="-1" href="#隐式绑定"><span class="icon icon-link"></span></a>隐式绑定</h3><div class="wrap-body">
<pre class="language-js"><code class="language-js code-highlight"><span class="code-line"><span class="token keyword">function</span> <span class="token function">foo</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>