> For the complete documentation index, see [llms.txt](https://lochiwei.gitbook.io/web/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://lochiwei.gitbook.io/web/js/val/obj/prop/internal.md).

# internal property

[JS](/web/js.md) ⟩ [value](/web/js/val.md) ⟩ [object](/web/js/val/obj.md) ⟩ [property](/web/js/val/obj/prop.md) ⟩ internal property

{% hint style="success" %}
for <mark style="color:yellow;">**most operations**</mark> on [**objects**](/web/js/val/obj.md), there’s an “<mark style="color:purple;">**internal method**</mark>” in the [**JS spec**](/web/master/ref/js-spec.md) that describes how it works at the lowest level. For instance:

* <mark style="color:purple;">\[\[Get]]</mark> `-` internal method to **read** a property
* <mark style="color:purple;">\[\[Set]]</mark> `-` internal method to **write** a property

:warning: these methods are <mark style="color:red;">**only**</mark>**&#x20;**<mark style="color:yellow;">**used in the spec**</mark>, we <mark style="color:red;">**can’t call them directly**</mark>:exclamation:
{% endhint %}

{% tabs %}
{% tab title="⭐️ 重點" %}
{% hint style="warning" %}

* ( not:question:) every [function](/web/js/val/func.md) <mark style="color:yellow;">**supports**</mark> the [\[\[Call\]\]](https://tc39.es/ecma262/#table-additional-essential-internal-methods-of-function-objects) <mark style="color:purple;">**internal method**</mark>.
* every [constructor](/web/js/val/func/constructor.md) <mark style="color:yellow;">**supports**</mark> the [\[\[Construct\]\]](https://tc39.es/ecma262/#table-additional-essential-internal-methods-of-function-objects) <mark style="color:purple;">**internal method**</mark>.&#x20;

:point\_right: [callable vs. constructable](/web/js/val/obj/create/new/callable-vs.-constructable.md)
{% endhint %}
{% endtab %}

{% tab title="🔴 主題" %}

* :scales: [callable vs. constructable](/web/js/val/obj/create/new/callable-vs.-constructable.md)
* [\[\[Environment\]\]](/web/js/concept/execution-context/lexical-environment/environment.md) - lexical environment where a function was made.
* [\[\[HomeObject\]\]](/web/js/val/obj/method/home-object.md)
  {% endtab %}

{% tab title="👥 相關" %}

* [Proxy](/web/js/val/builtin/proxy.md)
* [mixin](/web/js/val/obj/extend/mixin.md) uses internal methods to [get/set](/web/js/val/class/member/getter-setter.md) properties.
  {% endtab %}

{% tab title="📗 參考" %}

* [ ] JS.info ⟩ [Proxy and Reflect](https://javascript.info/proxy)
  {% endtab %}
  {% endtabs %}
