Skip to content

Commit 7d69dbe

Browse files
committed
Fix typos
1 parent b8fc32c commit 7d69dbe

File tree

11 files changed

+181
-181
lines changed

11 files changed

+181
-181
lines changed

1-js/07-object-oriented-programming/01-property-descriptors/article.md

Lines changed: 16 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -7,16 +7,15 @@
77

88
[cut]
99

10-
## プロパティフラグ
10+
## プロパティフラグ [#property-flags]
1111

12-
オブジェクトプロパティは **`value`** に加えて、3つの特別な属性を持っています(所謂 "フラグ" と呼ばれています)。
13-
Object properties, besides a **`value`**, have three special attributes (so-called "flags"):
12+
オブジェクトプロパティは **`value`** に加えて、3つの特別な属性を持っています(いわゆる "フラグ" と呼ばれています)。
1413

1514
- **`writable`** -- `true` の場合は変更可能です。それ以外の場合は読み取り専用です。
16-
- **`enumerable`** -- `true` だとループでリストされます。それ以外の場合はリストされません
15+
- **`enumerable`** -- `true` だとループで列挙されます。それ以外の場合は列挙されません
1716
- **`configurable`** -- `true` の場合、プロパティを削除したり、これらの属性を変更することができます。
1817

19-
私たちは、まだこれらを見ていませんでした。なぜなら、一般的にはこれらは表示されないからです。私たちが "通常の方法" でプロパティを作成するとき、それらはすべて `true` です。が、私たちはいつでもそれを変更することができます
18+
私たちは、まだこれらを見ていませんでした。なぜなら、一般的にはこれらは表示されないからです。"通常の方法" でプロパティを作成するとき、これらはすべて `true` です。が、いつでもそれを変更することができます
2019

2120
まず、それらのフラグを取得する方法を見てみましょう。
2221

@@ -45,7 +44,7 @@ let user = {
4544
let descriptor = Object.getOwnPropertyDescriptor(user, 'name');
4645

4746
alert( JSON.stringify(descriptor, null, 2 ) );
48-
/* property descriptor:
47+
/* プロパティディスクリプタ:
4948
{
5049
"value": "John",
5150
"writable": true,
@@ -69,7 +68,7 @@ Object.defineProperty(obj, propertyName, descriptor)
6968
`descriptor`
7069
: 適用するプロパティディスクリプタです。
7170

72-
もし、プロパティが存在する場合、`defineProperty` はそのフラグを更新します。そうでなければ、与えられた値とフラグでプロパティを作りsます。その場合に、もしフラグが指定されていなければ `false` とみなされます。
71+
もし、プロパティが存在する場合、`defineProperty` はそのフラグを更新します。そうでなければ、与えられた値とフラグでプロパティを作ります。その場合に、もしフラグが指定されていなければ `false` とみなされます。
7372

7473
例えば、ここではプロパティ `name` はすべて偽のフラグで作られます。:
7574

@@ -101,7 +100,7 @@ alert( JSON.stringify(descriptor, null, 2 ) );
101100

102101
では、例を使ってフラグの影響を見てみましょう。
103102

104-
## 読み取り専用(Read-only)
103+
## 読み取り専用(Read-only) [#read-only]
105104

106105
`writable` フラグを変更して `user.name` を読み取り専用にしてみましょう:
107106

@@ -131,7 +130,7 @@ let user = { };
131130
Object.defineProperty(user, "name", {
132131
*!*
133132
value: "Pete",
134-
// for new properties need to explicitly list what's true
133+
// 新しいプロパティに対して、true のものは明示的に列挙する必要があります
135134
enumerable: true,
136135
configurable: true
137136
*/!*
@@ -142,7 +141,7 @@ user.name = "Alice"; // Error
142141
```
143142

144143

145-
## 列挙可能でない(Non-enumerable)
144+
## 列挙可能でない(Non-enumerable) [#non-enumerable]
146145

147146
今、カスタムの `toString``user` に追加しましょう。
148147

@@ -156,7 +155,7 @@ let user = {
156155
}
157156
};
158157

159-
// By default, both our properties are listed:
158+
// デフォルトでは、両方のプロパティは列挙されます:
160159
for (let key in user) alert(key); // name, toString
161160
```
162161

@@ -177,7 +176,7 @@ Object.defineProperty(user, "toString", {
177176
});
178177

179178
*!*
180-
// Now our toString disappears:
179+
// これで toString は消えました:
181180
*/!*
182181
for (let key in user) alert(key); // name
183182
```
@@ -214,7 +213,7 @@ alert( JSON.stringify(descriptor, null, 2 ) );
214213
```js run
215214
Math.PI = 3; // Error
216215

217-
// delete Math.PI won't work either
216+
// delete Math.PI もまた動作しません
218217
```
219218

220219
変更不能なプロパティを作ることは一方通行です。それを戻すことはできません。なぜなら `defineProperty` は変更不能なプロパティでは動作しないためです。
@@ -231,8 +230,8 @@ Object.defineProperty(user, "name", {
231230
});
232231

233232
*!*
234-
// won't be able to change user.name or its flags
235-
// all this won't work:
233+
// user.name またはそのフラグを変更することはできません
234+
// これらすべて動作しません:
236235
// user.name = "Pete"
237236
// delete user.name
238237
// defineProperty(user, "name", ...)
@@ -241,7 +240,7 @@ Object.defineProperty(user, "name", {writable: true}); // Error
241240
```
242241

243242
```smart header="use strict の場合にのみエラーとなります"
244-
非 strict mode では、読み取り専用プロパティなどに書き込むときにエラーは発生しません。 しかし、操作はまだ成功しません。フラグ違反の操作は、非 strict では無視されます。
243+
非 strict mode では、読み取り専用プロパティなどに書き込むときにエラーは発生しません。 しかし、操作は成功しません。フラグ違反の操作は、非 strict では無視されます。
245244
```
246245

247246
## Object.defineProperties
@@ -268,7 +267,7 @@ Object.defineProperties(user, {
268267
});
269268
```
270269

271-
なので、私たちは一度に多くのプロパティをセットできます
270+
なので、一度に多くのプロパティをセットできます
272271

273272
## Object.getOwnPropertyDescriptors
274273

1-js/07-object-oriented-programming/02-property-accessors/article.md

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
最初の種類は *データプロパティ* です。私たちはすでにそれがどうやって動作するのかを知っています。実際、これまで使ってきたすべてのプロパティはデータプロパティでした。
77

8-
2つ目のプロパティの種類は新しいものです。それは *アクセサプロパティ* です。それらは基本的には値の取得やセットをする関数ですが、外部コードへは通常のプロパティのように見えます
8+
2つ目のプロパティの種類は新しいものです。それは *アクセサプロパティ* です。それらは基本的には値の取得やセットをする関数ですが、外部コードからは通常のプロパティのように見えます
99

1010
[cut]
1111

@@ -16,11 +16,11 @@
1616
```js
1717
let obj = {
1818
*!*get propName()*/!* {
19-
// getter, the code executed on getting obj.propName
19+
// getter, obj.propName を取得するときにコードが実行されます
2020
},
2121

2222
*!*set propName(value)*/!* {
23-
// setter, the code executed on setting obj.propName = value
23+
// setter, obj.propName = value 時にコードが実行されます
2424
}
2525
};
2626
```
@@ -77,14 +77,14 @@ let user = {
7777
*/!*
7878
};
7979

80-
// set fullName is executed with the given value.
80+
// set fullName は指定された値で実行されます
8181
user.fullName = "Alice Cooper";
8282

8383
alert(user.name); // Alice
8484
alert(user.surname); // Cooper
8585
```
8686

87-
今私たちは "仮想" プロパティを持っています。 読み書き可能ですが、実際には存在しません。
87+
"仮想" プロパティを持っています。 読み書き可能ですが、実際には存在しません。
8888

8989
```smart header="アクセサプロパティは get/set でのみアクセス可能です"
9090
プロパティは、 "データプロパティ" か "アクセサプロパティ" のいずれかになりますが、両方にはなりません。
@@ -98,7 +98,7 @@ setter または getter だけがある場合もあります。この場合は
9898

9999
## アクセサディスクリプタ [#accessor-descriptors]
100100

101-
アクセサプロパティのためのディスクリプタは、データプロパティを比べて異なります
101+
アクセサプロパティのためのディスクリプタは、データプロパティと比べて異なります
102102

103103
アクセサプロパティでは、`value``writable` がありませんが、代わりに、`get``set` 関数があります。
104104

@@ -151,7 +151,7 @@ Object.defineProperty({}, 'prop', {
151151
});
152152
```
153153

154-
## スマートな getters/setters
154+
## スマートな getters/setters [#smarter-getters-setters]
155155

156156
Getter/setter は、実際のプロパティ値をラッパーとして使用して、より多くのコントロールを得ることができます。
157157

@@ -178,7 +178,7 @@ alert(user.name); // Pete
178178
user.name = ""; // Name is too short...
179179
```
180180

181-
技術的には、外部コードは `user_name` を使うことで、直接 name にアクセスできるかもしれません。しかし、アンダースコア `"_"` で始まるプロパティは内部のもので、外部のオブジェクトから触るべきではないということは広く知られています。
181+
技術的には、外部コードは `user._name` を使うことで、直接 name にアクセスできるかもしれません。しかし、アンダースコア `"_"` で始まるプロパティは内部のもので、外部のオブジェクトから触るべきではないということは広く知られています。
182182

183183

184184
## 互換性のために使用する [#using-for-compatibility]
@@ -221,7 +221,7 @@ function User(name, birthday) {
221221
this.birthday = birthday;
222222

223223
*!*
224-
// age is calculated from the current date and birthday
224+
// age は現在の日付と誕生日から計算されます
225225
Object.defineProperty(this, "age", {
226226
get() {
227227
let todayYear = new Date().getFullYear();
@@ -233,8 +233,8 @@ function User(name, birthday) {
233233

234234
let john = new User("John", new Date(1992, 6, 1));
235235

236-
alert( john.birthday ); // birthday is available
237-
alert( john.age ); // ...as well as the age
236+
alert( john.birthday ); // birthday は利用可能です
237+
alert( john.age ); // ...age も同様です
238238
```
239239

240240
これで古いコードも機能します。

1-js/07-object-oriented-programming/03-prototype-inheritance/article.md

Lines changed: 18 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
プログラミングでは、何かを取ってそれを拡張することがしばしばあります。
44

5-
例えば、プロパティとメソッドをもつ `user` オブジェクトを持っているとします。そして、そのいくつかを僅かに変更した `admin``guest` を作りたいとします。私たちは、コピーや再実装ではなく、単にその上に新しいオブジェクトを作成することで、`user` が持っているものを再利用したいです。
5+
例えば、プロパティとメソッドをもつ `user` オブジェクトを持っているとします。そして、そのいくつかを僅かに変更した `admin``guest` を作りたいとします。コピーや再実装ではなく、単にその上に新しいオブジェクトを作成することで、`user` が持っているものを再利用したいです。
66

77
*プロトタイプ継承* はそれを助ける言語の機能です。
88

@@ -51,7 +51,7 @@ let rabbit = {
5151
rabbit.__proto__ = animal; // (*)
5252
*/!*
5353

54-
// we can find both properties in rabbit now:
54+
// 今、rabbit で両方のプロパティを見つけることができます:
5555
*!*
5656
alert( rabbit.eats ); // true (**)
5757
*/!*
@@ -60,14 +60,13 @@ alert( rabbit.jumps ); // true
6060

6161
ここで、行 `(*)``rabbit` のプロトタイプに `animal` をセットしています。
6262

63-
次に、`alert` がプロパティ `rabbit.eats` `(*)` を読もうとしたとき、それは `rabbit` にはないので、JavaScriptは `[[Prototype]]` 参照に従って、`animal` の中でそれを見つけます()。
64-
Then, when `alert` tries to read property `rabbit.eats` `(**)`, it's not in `rabbit`, so JavaScript follows the `[[Prototype]]` reference and finds it in `animal` (下から上に向かいます):
63+
次に、`alert` がプロパティ `rabbit.eats` `(**)` を読もうとしたとき、それは `rabbit` にはないので、JavaScriptは `[[Prototype]]` 参照に従って、`animal` の中でそれを見つけます(下から上に向かいます)。
6564

6665
![](proto-animal-rabbit.png)
6766

6867
ここでは、私たちは "`animal``rabbit` のプロトタイプ" または "`rabbit` がプロトタイプ的に `animal` を継承している" という事ができます。"
6968

70-
したがって、もし `animal` 多くの役立つプロパティやメソッドを持っている場合、それらは自動的に `rabbit` でも利用可能になります。
69+
したがって、もし `animal` が多くの役立つプロパティやメソッドを持っている場合、それらは自動的に `rabbit` でも利用可能になります。
7170
このようなプロパティは "継承" と呼ばれます。
7271

7372
もし `animal` がメソッドを持っている場合、`rabbit` でもそれを呼ぶことができます:
@@ -87,7 +86,7 @@ let rabbit = {
8786
__proto__: animal
8887
};
8988

90-
// walk is taken from the prototype
89+
// walk prototype から取られました
9190
*!*
9291
rabbit.walk(); // Animal walk
9392
*/!*
@@ -118,9 +117,9 @@ let longEar = {
118117
__proto__: rabbit
119118
}
120119

121-
// walk is taken from the prototype chain
120+
// walk prototype チェーンから取られました
122121
longEar.walk(); // Animal walk
123-
alert(longEar.jumps); // true (from rabbit)
122+
alert(longEar.jumps); // true (rabbit から)
124123
```
125124

126125
![](proto-animal-rabbit-chain.png)
@@ -144,7 +143,7 @@ alert(longEar.jumps); // true (from rabbit)
144143
let animal = {
145144
eats: true,
146145
walk() {
147-
/* this method won't be used by rabbit */
146+
/* このメソッドは rabbit では使われません */
148147
}
149148
};
150149

@@ -190,13 +189,13 @@ let admin = {
190189

191190
alert(admin.fullName); // John Smith (*)
192191

193-
// setter triggers!
192+
// setter がトリガします!
194193
admin.fullName = "Alice Cooper"; // (**)
195194
```
196195

197-
ここで、行 `(*)` では、プロパティ `admin.fullName` はプロトタイプ `user` getter を持っていますので、それが呼ばれます。また、行 `(**)` では、プロパティはプロトタイプに setter を持っているので、それが呼ばれます。
196+
ここで、行 `(*)` では、プロパティ `admin.fullName` はプロトタイプ `user` getter を持っているので、それが呼ばれます。また、行 `(**)` では、プロパティはプロトタイプに setter を持っているので、それが呼ばれます。
198197

199-
## "this" の値
198+
## "this" の値 [#the-value-of-this]
200199

201200
上の例で、興味深い質問が起きるかもしれません。: `set fullName(value)` の内側での `this` の値はなんでしょうか?
202201
プロパティ `this.name``this.surname` が書かれているのはどこでしょうか? `user` または `admin` ?
@@ -207,14 +206,14 @@ admin.fullName = "Alice Cooper"; // (**)
207206

208207
したがって、setter は実際に `this` として `admin` を使い、`user` ではありません。
209208

210-
それは、実際には非常に重要なことです。なぜなら、私たちは多くのメソッドを持つ大きなオブジェクトを持ち、それを継承する可能性があるからです。次に、継承されたオブジェクトの上でそれらのメソッドを実行し、大きなオブジェクトではなく、これらのオブジェクトの状態を変更します
209+
それは、実際には非常に重要なことです。なぜなら、多くのメソッドを持つ大きなオブジェクトを持ち、それを継承する可能性があるからです。次に、継承されたオブジェクトの上でそれらのメソッドを実行し、大きなオブジェクトではなく、継承したオブジェクトの状態を変更します
211210

212211
例えば、ここでは `animal` は "メソッド格納域" を表現しており、`rabbit` はそれを使います。
213212

214213
呼び出し `rabbit.sleep()``rabbit` オブジェクトに `this.isSleeping` をセットします。:
215214

216215
```js run
217-
// animal has methods
216+
// animal がメソッドを持っています
218217
let animal = {
219218
walk() {
220219
if (!this.isSleeping) {
@@ -231,11 +230,11 @@ let rabbit = {
231230
__proto__: animal
232231
};
233232

234-
// modifies rabbit.isSleeping
233+
// rabbit.isSleeping を変更する
235234
rabbit.sleep();
236235

237236
alert(rabbit.isSleeping); // true
238-
alert(animal.isSleeping); // undefined (no such property in the prototype)
237+
alert(animal.isSleeping); // undefined (prototype にそのようなプロパティはありません)
239238
```
240239

241240
結果の図は次のようになります:
@@ -249,7 +248,7 @@ alert(animal.isSleeping); // undefined (no such property in the prototype)
249248
## サマリ [#summary]
250249

251250
- JavaScriptでは、すべてのオブジェクトは隠れた `[[Prototype]]` プロパティを持っており、それは別のオブジェクトまたは `null` です。
252-
- 私たちはそれにアクセスするために `obj.__proto__` を使うことができます(他の方法もあります。それらは後ほど学びます)。
251+
- それにアクセスするために `obj.__proto__` を使うことができます(他の方法もあります。それらは後ほど学びます)。
253252
- `[[Prototype]]` によるオブジェクトの参照は "プロトタイプ" と呼ばれます。
254-
- もしも `obj` のプロパティを読みたい、またはメソッドを呼び出したいが存在しない場合、JavaScriptはそれをプロトタイプの中で見つけようとします。書き込み/削除操作はオブジェクトに対して直接動作し、それらはプロトタイプを使いません(プロパティが setter でない限り)。
255-
- もしも私たちが `obj.method()` を呼び出し、`method` がプロトタイプから取られた場合`this` は依然として `obj` を参照します。したがって、メソッドはたとえ継承されていたとしても、常に現在のオブジェクトで動作します。
253+
- もしも `obj` のプロパティを読みたい、またはメソッドを呼び出したいが存在しない場合、JavaScriptはそれをプロトタイプの中で見つけようとします。書き込み/削除操作はオブジェクトに対して直接動作し、プロトタイプを使いません(プロパティが setter でない限り)。
254+
- もしも `obj.method()` を呼び出し、`method` がプロトタイプから取られた場合も`this` は依然として `obj` を参照します。したがって、メソッドはたとえ継承されていたとしても、常に現在のオブジェクトで動作します。

0 commit comments

Comments
 (0)