fix(guide): simplify directory structure

This commit is contained in:
Mrugesh Mohapatra
2018-10-16 21:26:13 +05:30
parent f989c28c52
commit da0df12ab7
35752 changed files with 0 additions and 317652 deletions

View File

@@ -0,0 +1,40 @@
---
title: Add Methods After Inheritance
localeTitle: Добавить методы после наследования
---
## Добавить методы после наследования
### метод
Как и в следующем примере, должен быть создан новый экземпляр объекта - `Dog` - и должен быть установлен `prototype` .
```javascript
function Bird() { }
Bird.prototype = Object.create(Animal.prototype);
Bird.prototype.constructor = Bird;
```
Затем в прототип Dog должна быть добавлена ​​новая функция - `bark()` .
### Решение
```javascript
function Animal() { }
Animal.prototype.eat = function() { console.log("nom nom nom"); };
function Dog() { }
// Add your code below this line
Dog.prototype = Object.create(Animal.prototype);
Dog.prototype.constructor = Dog;
Dog.prototype.bark = function() {
console.log("Woof woof!");
};
// Add your code above this line
let beagle = new Dog();
beagle.eat(); // Should print "nom nom nom"
beagle.bark(); // Should print "Woof!"
```

View File

@@ -0,0 +1,79 @@
---
title: Change the Prototype to a New Object
localeTitle: Изменение прототипа на новый объект
---
## Изменение прототипа на новый объект
Вместо добавления каждого свойства prototype один за другим с `object.prototype.property` . Мы можем сделать это намного проще, установив прототип для нового объекта. Таким образом, все свойства прототипа добавляются сразу.
## Подсказка:
```javascript
Dog.prototype = {
property: value,
functionName: function(){
},
}
```
Теперь попробуйте решить проблему!
## Spoiler-Alert Solution Ahead!
## Решение 1:
```javascript
function Dog(name) {
this.name = name;
}
Dog.prototype = {
// Add your code below this line
numLegs: 2,
eat: function(){
console.log('nom nom nom');
},
describe: function(){
console.log("My name is " + this.name);
}
}
```
## Код Объяснение:
Мы назначаем переменную прототипа новому объекту. Затем мы объявляем свойство numLegs и даем ему значение 2.
Затем мы создаем две функции: «есть» и «описывать». Теперь помните, что функции в объектах - это методы с тем же синтаксисом, что и свойства. У вас есть имя, за которым следует значение. Это значение является функцией, а имя - именем вашей функции.
## Решение 2:
```javascript
function Dog(name) {
this.name = name;
}
Dog.prototype = {
// Add your code below this line
numLegs: 2,
eat(){
console.log('nom nom nom');
},
describe(){
console.log("My name is " + this.name);
}
};
```
## Код Объяснение:
Единственное, что отличается от этого решения и последнего решения, - это укоротить синтаксис функций «есть» и «описать». Мы сделали это, удалив «:» и слово «function».
С ES6 нам разрешено это делать.
Вы можете прочитать об этом здесь: [Ссылка](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Method_definitions)

View File

@@ -0,0 +1,19 @@
---
title: Create a Basic JavaScript Object
localeTitle: Создание базового объекта JavaScript
---
## Создание базового объекта JavaScript
### Метод:
Духовность этой проблемы более или менее идентична приведенному примеру. Дайте объекту `dog` два новых свойства - `name` и `numLegs` - и установите их в строку и число соответственно.
### Решение:
```javascript
let dog = {
name: "George",
numLegs: 4
};
```

View File

@@ -0,0 +1,34 @@
---
title: Create a Method on an Object
localeTitle: Создание метода для объекта
---
## Создание метода для объекта
### Метод:
Функция объекта должна быть инициализирована внутри самого объекта. Это продемонстрировано в следующем коде.
```javascript
let obj = {
property1 = 1,
function1: function() {
//Code to be exectued
}
};
```
### Решение:
```javascript
let dog = {
name: "Spot",
numLegs: 4,
sayLegs: function() {
return "This dog has " + dog.numLegs + " legs.";
}
};
dog.sayLegs();
```

View File

@@ -0,0 +1,20 @@
---
title: Define a Constructor Function
localeTitle: Определение функции конструктора
---
## Определение функции конструктора
### Метод:
Функция `Dog()` должна быть записана в том же формате, что и функция `Bird()` приведенная в примере. Просто замените `Bird` with `Dog` на все тестовые примеры.
### Решение:
```javascript
function Dog() {
this.name = "Geogre",
this.color = "White",
this.numLegs = 4;
}
```

View File

@@ -0,0 +1,21 @@
---
title: Extend Constructors to Receive Arguments
localeTitle: Расширить конструкторы для получения аргументов
---
## Расширить конструкторы для получения аргументов
### Метод:
Как и в примере `Bird()` , функция `Dog()` должна записывать два параметра - `name` и `color` . Затем имя и цвет должны быть инициализированы внутри функции, используя `this` ключевое слово. Конечное свойство - `numLegs` устанавливается `numLegs` 4, так как функция не принимает параметр numLegs.
### Решение:
```javascript
function Dog(name, color) {
this.name = name;
this.color = color;
this.numLegs = 4;
}
let terrier = new Dog("George","White");
```

View File

@@ -0,0 +1,11 @@
---
title: Object Oriented Programming
localeTitle: Объектно-ориентированное программирование
---
## Объектно-ориентированное программирование
Это заглушка. [Помогите нашему сообществу расширить его](https://github.com/freecodecamp/guides/tree/master/src/pages/mathematics/quadratic-equations/index.md) .
[Это руководство по быстрому стилю поможет вам принять ваш запрос на тягу](https://github.com/freecodecamp/guides/blob/master/README.md) .
#### Дополнительная информация:

View File

@@ -0,0 +1,30 @@
---
title: Inherit Behaviors from a Supertype
localeTitle: Наследование поведения от супертипа
---
## Наследование поведения от супертипа
### метод
Для того, чтобы передать этот вызов просто создать новые `duck` и `beagle` объектов с помощью `Object.create()` метод показано на следующем примере.
\`\` \`Javascript
let animal = Object.create (Animal.prototype);
```
### Solution
```
Javascript
функция Animal () {}
Animal.prototype = { конструктор: Animal, eat: function () { console.log («nom nom nom»); } };
// Добавьте код ниже этой строки
let duck = Object.create (Animal.prototype); // Изменить эту строку let beagle = Object.create (Animal.prototype) ;; // Изменить эту строку
duck.eat (); // Должен печатать "nom nom nom" beagle.eat (); // Должен печатать "nom nom nom"
\`\` \`

View File

@@ -0,0 +1,35 @@
---
title: Iterate Over All Properties
localeTitle: Итерация по всем свойствам
---
## Итерация по всем свойствам
### метод
Метод состоит в том, чтобы использовать `for-in-loop` для итерации по каждому свойству объекта. Внутри цикла вы затем проверяете, является ли свойство `own-property` или `prototype` и поместите его в массив `ownProps[]` или массив `prototypeProps[]` . Не забудьте `push` свойства объекта `beagle` а не объект `Dog` чтобы передать все тестовые примеры.
### Решение
```javascript
function Dog(name) {
this.name = name;
}
Dog.prototype.numLegs = 4;
let beagle = new Dog("Snoopy");
let ownProps = [];
let prototypeProps = [];
// Add your code below this line
for (let property in beagle) {
if(Dog.hasOwnProperty(property)) {
ownProps.push(property)
}
else {
prototypeProps.push(property)
}
}
```

View File

@@ -0,0 +1,22 @@
---
title: Make Code More Reusable with the this Keyword
localeTitle: Сделать код более многоразовым с помощью этого ключевого слова
---
## Сделать код более многоразовым с помощью этого ключевого слова
### Метод:
Эта задача просто демонстрирует силу `this` ключевого слова. Замена `dog.numLegs` на `this.numLegs` усиливает наш код, напрямую ссылаясь на этот объект. [developer.mozilla.org](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/this) имеет множество примеров для определения эффектов `this` ключевого слова.
### Решение:
```javascript
let dog = {
name: "Spot",
numLegs: 4,
sayLegs: function() {return "This dog has " + this.numLegs + " legs.";}
};
dog.sayLegs();
```

View File

@@ -0,0 +1,14 @@
---
title: Override Inherited Methods
localeTitle: Переопределить наследуемые методы
---
## Переопределить наследуемые методы
# Решение
```javascript
Penguin.prototype.fly = function() {
return "Alas, this is a flightless bird.";
};
```

View File

@@ -0,0 +1,25 @@
---
title: Remember to Set the Constructor Property when Changing the Prototype
localeTitle: Не забудьте установить свойство конструктора при смене прототипа
---
## Не забудьте установить свойство конструктора при смене прототипа
* Не забудьте определить свойство конструктора при установке прототипа на новый объект.
# Решение
```javascript
Dog.prototype = {
constructor: Dog, // Solution
numLegs: 2,
eat: function() {
console.log("nom nom nom");
},
describe: function() {
console.log("My name is " + this.name);
}
};
```

View File

@@ -0,0 +1,32 @@
---
title: Reset an Inherited Constructor Property
localeTitle: Сбросить свойство унаследованного конструктора
---
## Сбросить свойство унаследованного конструктора
### метод
Объекты `duck` и `beagle` запрограммированы на наследование свойств конструктора `supertypes` . Чтобы перезаписать эти две строки кода, необходимо записать, чтобы установить конструкторы в нужные конструкторы `Bird` and `Dog` . Следующий код демонстрирует, как это можно достичь.
```javascript
Bird.prototype.constructor = Bird;
```
### Решение
```javascript
function Animal() { }
function Bird() { }
function Dog() { }
Bird.prototype = Object.create(Animal.prototype);
Dog.prototype = Object.create(Animal.prototype);
// Add your code below this line
Bird.prototype.constructor = Bird;
Dog.prototype.constructor = Dog;
let duck = new Bird();
let beagle = new Dog();
```

View File

@@ -0,0 +1,35 @@
---
title: Set the Child's Prototype to an Instance of the Parent
localeTitle: Установите прототип ребенка в экземпляр родителя
---
## Установите прототип ребенка в экземпляр родителя
### метод
Эта задача ничем не отличается от последней задачи, в том, что вы должны создать объект, который наследуется от `supertype` . Только на этот раз подтип `Dog` наследует супертип `Animal` . Просто создайте новый экземпляр `Dog.prototype` как в следующем примере.
```javascript
Bird.prototype = Object.create(Animal.prototype);
```
### Решение
```javascript
function Animal() { }
Animal.prototype = {
constructor: Animal,
eat: function() {
console.log("nom nom nom");
}
};
function Dog() { }
// Add your code below this line
Dog.prototype = Object.create(Animal.prototype);
let beagle = new Dog();
beagle.eat(); // Should print "nom nom nom"
```

View File

@@ -0,0 +1,25 @@
---
title: Understand Own Properties
localeTitle: Понять собственные свойства
---
## Понять собственные свойства
### Метод:
В приведенном примере кода вы увидите новый массив `ownProps[]` intialised, за которым следует инструкция `for...in` цикле через свойства `duck` а затем используйте оператор `push()` для заполнения нового массива. Тот же метод должен применяться для `canary` объекта.
Просто замените объект `duck` в выражении «for ... in» с `canary` чтобы передать все тестовые примеры.
### Решение:
```javascript
let canary = new Bird("Tweety");
let ownProps = [];
// Add your code below this line
for(let property in canary) {
if(canary.hasOwnProperty(property)) {
ownProps.push(property);
}
}
```

View File

@@ -0,0 +1,28 @@
---
title: Understand the Constructor Property
localeTitle: Понять свойство конструктора
---
## Понять свойство конструктора
### метод
Просто выполните функцию, аналогичную приведенной в примере. Используйте `if-statement` для проверки того, является ли `candidate` `Dog` .
### Решение
```javascript
function Dog(name) {
this.name = name;
}
// Add your code below this line
function joinDogFraternity(candidate) {
if(candidate.constructor === Dog) {
return true;
}
else {
return false;
}
}
```

View File

@@ -0,0 +1,18 @@
---
title: Understand the Immediately Invoked Function Expression (IIFE)
localeTitle: Понимать выражение с выведенной функцией (IIFE)
---
## Понимать выражение с выведенной функцией (IIFE)
### метод
В первом тестовом примере вы попросите анонимную функцию. Для этого просто удалите имя функции, как показано в примере. Затем функция должна быть завернута в фигурные скобки с другим набором фигурных скобок в конце, чтобы немедленно вызвать функцию.
### Решение
```javascript
(function() {
console.log("A cozy nest is ready");
})();
```

View File

@@ -0,0 +1,17 @@
---
title: Understand the Prototype Chain
localeTitle: Поймите прототипную цепочку
---
## Поймите прототипную цепочку
### Решение
Ваш код должен показать, что Object.prototype является прототипом Dog.prototype
\`\` \`javascript function Dog (name) { this.name = name; }
let beagle = new Dog («Snoopy»);
Dog.prototype.isPrototypeOf (бигль); // => true
// Зафиксируем код ниже, чтобы он оценил значение true Object.prototype.isPrototypeOf (Dog.prototype); \`\` \`

View File

@@ -0,0 +1,9 @@
---
title: Understand Where an Objects Prototype Comes From
localeTitle: Поймите, откуда идет прототип объекта
---
## Поймите, откуда идет прототип объекта
Это заглушка. [Помогите нашему сообществу расширить его](https://github.com/freecodecamp/guides/tree/master/src/pages/certifications/javascript-algorithms-and-data-structures/object-oriented-programming/understand-where-an-objects-prototype-comes-from/index.md) .
[Это руководство по быстрому стилю поможет вам принять ваш запрос на тягу](https://github.com/freecodecamp/guides/blob/master/README.md) .

View File

@@ -0,0 +1,22 @@
---
title: Use a Constructor to Create Objects
localeTitle: Использование конструктора для создания объектов
---
## Использование конструктора для создания объектов
### Метод:
В последнем вызове мы увидели, как создать конструкторную функцию. Теперь мы можем просто вызвать эту функцию для создания нового объекта со свойствами, уже определенными в конструкторе. Просто инициализируйте новую переменную `hound` вызывающую конструктор `Dog()` .
### Решение:
```javascript
function Dog() {
this.name = "Rupert";
this.color = "brown";
this.numLegs = 4;
}
// Add your code below this line
let hound = new Dog();
```

View File

@@ -0,0 +1,33 @@
---
title: Use a Mixin to Add Common Behavior Between Unrelated Objects
localeTitle: Использование Mixin для добавления общего поведения между несвязанными объектами
---
## Использование Mixin для добавления общего поведения между несвязанными объектами
### метод
Так же , как `flyMixin` функция, новая `glideMixin` функция должна быть сделана , чтобы принять оба `bird` и `boat` объектов в качестве параметра. Создайте эту новую функцию, используя тот же синтаксис, что и функция `flyMixin` а затем вызовите функцию для обоих объектов.
### Решение
```javascript
let bird = {
name: "Donald",
numLegs: 2
};
let boat = {
name: "Warrior",
type: "race-boat"
};
// Add your code below this line
let glideMixin = function(obj) {
obj.glide = function() {
console.log("Gliding!");
}
};
glideMixin(bird);
glideMixin(boat);
```

View File

@@ -0,0 +1,45 @@
---
title: Use an IIFE to Create a Module
localeTitle: Использование модуля IIFE для создания модуля
---
## Использование модуля IIFE для создания модуля
### метод
Оба `Mixin` должны быть завернуты в новый `funModule` так что отправная точка отсрочки состоит в том, чтобы прокомментировать весь код до сих пор.
```javascript
/*let isCuteMixin = function(obj) {
obj.isCute = function() {
return true;
};
};
let singMixin = function(obj) {
obj.sing = function() {
console.log("Singing to an awesome tune");
};
};
*/
```
Затем ниже начните писать свой новый код `funModule` . Внутри нового модуля вам нужно написать оператор return, чтобы вернуть оба блока кода `Mixin` . Просто скопируйте оба оригинальных блока кода `Mixin` в свой новый код модуля, но не забудьте выделить оба микшина с помощью `,`
### Решение
```javascript
let funModule = (function() {
return {
isCuteMixin: function(obj) {
obj.isCute = function() {
return true;
};
},
singMixin: function(obj) {
obj.sing = function() {
console.log("Singing to an awesome tune");
};
}
}
})();
```

View File

@@ -0,0 +1,23 @@
---
title: Use Closure to Protect Properties Within an Object from Being Modified Externally
localeTitle: Использовать закрытие для защиты свойств внутри объекта от модификации извне
---
## Использовать закрытие для защиты свойств внутри объекта от модификации извне
### метод
Как и в приведенном примере, вместо объявления переменной `weight` с `this` ключевым словом, ключевое слово `let` должно использоваться для объявления его как частной переменной. Таким образом, доступ к ней возможен только внутри функции `Bird` . Метод `getWeight` должен быть добавлен в функцию `Bird` для доступа к переменной `weight` .
### Решение
```javascript
function Bird() {
let weight = 15;
this.getWeight = function() {
return weight;
};
}
```

View File

@@ -0,0 +1,33 @@
---
title: Use Dot Notation to Access the Properties of an Object
localeTitle: Использовать точную нотацию для доступа к свойствам объекта
---
## Использовать точную нотацию для доступа к свойствам объекта
### Метод:
Следующий код просто распечатает `property1` из объекта `obj` .
```javascript
let obj = {
property1 = 1,
property2 = 2
};
console.log(obj.property1);
```
Следуя этой логике, используйте операцию `console.log` для печати `property1` и `property2` на экране.
### Решение:
```javascript
let dog = {
name: "Spot",
numLegs: 4
};
// Add your code below this line
console.log(dog.name);
console.log(dog.numLegs);
```

View File

@@ -0,0 +1,37 @@
---
title: Use Inheritance So You Don't Repeat Yourself
localeTitle: Используйте Наследование, чтобы вы не повторяли себя
---
## Используйте Наследование, чтобы вы не повторяли себя
### Решение
Удалите метод «eat» из Cat.prototype и Bear.prototype и добавьте его в Animal.prototype.
```javascript
function Cat(name) {
this.name = name;
};
Cat.prototype = {
constructor: Cat
};
function Bear(name) {
this.name = name;
};
Bear.prototype = {
constructor: Bear
};
function Animal() { };
Animal.prototype = {
constructor: Animal,
eat: function() {
console.log("nom nom nom");
}
};
```

View File

@@ -0,0 +1,31 @@
---
title: Use Prototype Properties to Reduce Duplicate Code
localeTitle: Использование свойств прототипа для уменьшения повторяющегося кода
---
## Использование свойств прототипа для уменьшения повторяющегося кода
### Метод:
Свойство `prototype` позволяет нам добавлять новые свойства к конструктору объекта извне исходного кода. Свойство prototype также позволяет добавлять новые функции в конструктор объектов. Следующий код демонстрирует, как использовать `.prototype` для объекта для создания нового свойства в конструкторе.
#### Пример:
```javascript
Obj.prototype.newProperty = "New Property!";
```
Используя эту логику, просто создайте новое свойство `prototype` для `numLegs` . `Bird.prototype.numLegs = 2;` могут быть пройдены путем замены объекта `Bird` объектом `Dog` в приведенном примере - `Bird.prototype.numLegs = 2;`
### Решение:
```javascript
function Dog(name) {
this.name = name;
}
Dog.prototype.numLegs = 4;
// Add your code above this line
let beagle = new Dog("Snoopy");
```

View File

@@ -0,0 +1,32 @@
---
title: Verify an Object's Constructor with instanceof
localeTitle: Проверка конструктора объекта с помощью instanceof
---
## Проверка конструктора объекта с помощью instanceof
### Метод:
Как и в последнем вызове, создайте новый объект - `myHouse` - используя предоставленный конструктор.
#### Пример:
```javascript
let hound = new Dog();
```
Не забудьте указать функции `House` параметр для инициализации количества комнат. Затем просто вызовите оператор `instanceof` чтобы вернуть true в новом доме.
### Решение:
```javascript
/* jshint expr: true */
function House(numBedrooms) {
this.numBedrooms = numBedrooms;
}
// Add your code below this line
let myHouse = new House(5);
myHouse instanceof House;
```