teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

document.currentScript

2017/12/06 04:28

投稿

think49
think49

スコア18194

answer CHANGED
@@ -32,4 +32,26 @@
32
32
  console.log(tw.nextNode()); // <x-test id="a"></x-test>
33
33
  ```
34
34
 
35
+ ### document.currentScript
36
+
37
+ > ```JavaScript
38
+ > const ownerDocument = document.currentScript.ownerDocument;
39
+ > ```
40
+
41
+ このコードは何を意図しているのでしょうか。
42
+ 下記コードは常に `true` なので、
43
+
44
+ ```JavaScript
45
+ console.log(document.currentScript.ownerDocument === document); // true
46
+ ```
47
+
48
+ 先の変数文は下記コードと同じ挙動になります。
49
+
50
+ ```JavaScript
51
+ const ownerDocument = document;
52
+ ```
53
+
54
+ グローバル変数をローカル変数化する事でスコープチェーンを辿る回数が少なくなる為、`document` を何度も参照するならパフォーマンス向上が期待できますが、`currentScript` を経由する意味はないと考えます。
55
+ 今一度、求めている動作を見つめなおしてみる事をお勧めします。
56
+
35
57
  Re: Fushihara さん

1

document.querySelector

2017/12/06 04:28

投稿

think49
think49

スコア18194

answer CHANGED
@@ -17,7 +17,7 @@
17
17
  </script>
18
18
  ```
19
19
 
20
- **template要素の内容はDOM上に現れません**ので、`querySelector` で検索することは出来ません。
20
+ **template要素の内容はDOM上に現れません**ので、`document.querySelector` で検索することは出来ません。
21
21
  生成された DocumentFragment から `querySelector` を実行する事で期待通りに動作します。
22
22
 
23
23
  ### TreeWalker