# class:jshandle
### class: JSHandle v0.9.0
JSHandle 表示頁面內的 JavaScript 對象。 JSHandles 可以使用 [page.evaluateHandle](%EF%BC%83pageevaluatehandlepagefunction-args) 方法創建。
```
const windowHandle = await page.evaluateHandle(() => window);// ...
```
JSHandle 可防止引用的 JavaScript 對象被垃圾收集,除非是句柄 [disposed](%EF%BC%83jshandledispose)。 當原始框架被導航或父上下文被破壞時,JSHandles 會自動處理。
JSHandle 實例可以使用在 [`page.$eval()`](%EF%BC%83pageevalselector-pagefunction-args),[`page.evaluate()`](%EF%BC%83pageevaluatepagefunction-args) 和 [`page.evaluateHandle`](%EF%BC%83pageevaluatehandlepagefunction-args) 方法。
#### Methods
- [jsHandle.asElement()](#?product=Puppeteer&version=v1.11.0&show=api-jshandleaselement)v0.9.0
- [jsHandle.dispose()](#?product=Puppeteer&version=v1.11.0&show=api-jshandledispose)v0.9.0
- [jsHandle.executionContext()](#?product=Puppeteer&version=v1.11.0&show=api-jshandleexecutioncontext)v0.9.0
- [jsHandle.getProperties()](#?product=Puppeteer&version=v1.11.0&show=api-jshandlegetproperties)v0.9.0
- [jsHandle.getProperty(propertyName)](#?product=Puppeteer&version=v1.11.0&show=api-jshandlegetpropertypropertyname)v0.9.0
- [jsHandle.jsonValue()](#?product=Puppeteer&version=v1.11.0&show=api-jshandlejsonvalue)v0.9.0
### Methods
#### jsHandle.asElement()v0.9.0
- returns: <?[ElementHandle](#?product=Puppeteer&version=v1.11.0&show=api-class-elementhandle "ElementHandle")>
如果對象句柄是 [ElementHandle](#?product=Puppeteer&version=v1.11.0&show=api-class-elementhandle "ElementHandle") 的一個實例,則返回 `null` 或對象句柄本身。
#### jsHandle.dispose()v0.9.0
- returns: <[Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise "Promise")> Promise which resolves when the object handle is successfully disposed.
`jsHandle.dispose` 方法停止引用元素句柄。
#### jsHandle.executionContext()v0.9.0
- returns: [ExecutionContext](#?product=Puppeteer&version=v1.11.0&show=api-class-executioncontext "ExecutionContext")
返回句柄所屬的執行上下文。
#### jsHandle.getProperties()v0.9.0
- returns: <[Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise "Promise")<[Map](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map "Map")<[string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#String_type "String"), [JSHandle](#?product=Puppeteer&version=v1.11.0&show=api-class-jshandle "JSHandle")>>>
該方法返回一個包含屬性名稱作為鍵的映射和屬性值的 JSHandle 實例。
```
const handle = await page.evaluateHandle(() => ({window, document}));const properties = await handle.getProperties();const windowHandle = properties.get('window');const documentHandle = properties.get('document');await handle.dispose();
```
#### jsHandle.getProperty(propertyName)v0.9.0
- `propertyName` <[string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#String_type "String")> 屬性獲取
- returns: <[Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise "Promise")<[JSHandle](#?product=Puppeteer&version=v1.11.0&show=api-class-jshandle "JSHandle")>>
從引用的對象中獲取單個屬性。
#### jsHandle.jsonValue()v0.9.0
- returns: <[Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise "Promise")<[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object "Object")>>
返回對象的 JSON 表示。如果對象又一個 [`toJSON`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify#toJSON()\_behavior) 函數, 它 **將不會被調用**。
> **注意** 如果引用的對象不可字符串化,該方法將返回一個空的 JSON 對象。 如果對象具有循環引用,它將引發一個錯誤。

puppeteer.js中文網|class:jshandle
puppeteer.js中文文檔, puppeteer chrome, puppeteer firefox, puppeteer api 中文文檔
puppeteer.js中文網包含了Puppeteer中文文檔,最新資訊,應用案例等。Puppeteer 是一個 Node 庫,它提供了一個高級 API 來通過 DevTools 協議控制 Chromium 或 Chrome。
- Introduction
- 版本記錄
- 概要
- puppeteer-vs-puppeteer-core
- 環境變量
- error-handling
- working-with-chrome-extensions
- class:puppeteer
- class:browserfetcher
- class:browser
- class:page
- class:worker
- class:accessibility
- class:keyboard
- class:mouse
- class:touchscreen
- class:tracing
- class:dialog
- class:consolemessage
- class:frame
- class:executioncontext
- class:jshandle
- class:elementhandle
- class:request
- class:response
- class:securitydetails
- class:target
- class:cdpsession
- class:coverage
- class:timeouterror