Static properties and methods by hendraaagil · Pull Request #116 · javascript-tutorial/id.javascript.info · GitHub
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@ importance: 3

---

# Class extends Object?
# _Class extends Object?_

As we know, all objects normally inherit from `Object.prototype` and get access to "generic" object methods like `hasOwnProperty` etc.
Seperti yang kita ketahui, semua objek biasanya diwarisi dari `Object.prototype` dan mendapatkan akses ke metode objek "generic" seperti `hasOwnProperty` dll.

For instance:
Misalnya:

```js run
class Rabbit {
Expand All @@ -18,16 +18,16 @@ class Rabbit {
let rabbit = new Rabbit("Rab");

*!*
// hasOwnProperty method is from Object.prototype
// metode hasOwnProperty dari Object.prototype
alert( rabbit.hasOwnProperty('name') ); // true
*/!*
```

But if we spell it out explicitly like `"class Rabbit extends Object"`, then the result would be different from a simple `"class Rabbit"`?
Tapi jika kita mengejanya secara eksplisit seperti `"class Rabbit extends Object"`, maka hasilnya akan berbeda dari `"class Rabbit"`?

What's the difference?
Apa perbedaannya?

Here's an example of such code (it doesn't work -- why? fix it?):
Berikut contoh kodenya (tidak berhasil -- mengapa? memperbaikinya?):

```js
class Rabbit extends Object {
Expand All @@ -36,7 +36,7 @@ class Rabbit extends Object {
}
}

let rabbit = new Rabbit("Rab");
let rabbit = new Rabbit('Rab');

alert( rabbit.hasOwnProperty('name') ); // Error
alert(rabbit.hasOwnProperty('name')); // Error
```
103 changes: 51 additions & 52 deletions 1-js/09-classes/03-static-properties-methods/article.md