|
@@ -0,0 +1,261 @@
|
|
|
+### Initialize
|
|
|
+
|
|
|
+```javascript
|
|
|
+function Person(name, surname, age, sex, salary, married){
|
|
|
+ this.name = name;
|
|
|
+ this.surname = surname;
|
|
|
+ this.age = age;
|
|
|
+ this.sex = sex;
|
|
|
+ this.salary = salary;
|
|
|
+ this.married = married;
|
|
|
+}
|
|
|
+
|
|
|
+var objPerson = new Person("pasha","efimenko","22","male","0",false);
|
|
|
+console.log(objPerson.name);
|
|
|
+```
|
|
|
+
|
|
|
+### Closure getters and setters
|
|
|
+
|
|
|
+```javascript
|
|
|
+function Person(name, surname, age, sex, salary, married){
|
|
|
+ this.setName = function(newName){
|
|
|
+ if(typeof newName === "string"){
|
|
|
+ name = newName;
|
|
|
+ }
|
|
|
+ return name;
|
|
|
+ }
|
|
|
+ this.getName = function(){
|
|
|
+ return name;
|
|
|
+ }
|
|
|
+ this.setSurname = function(newSurname){
|
|
|
+ if(typeof newSurname === "string"){
|
|
|
+ surname = newSurname;
|
|
|
+ }
|
|
|
+ return surname;
|
|
|
+ }
|
|
|
+ this.getSurname = function(){
|
|
|
+ return surname;
|
|
|
+ }
|
|
|
+ this.setAge = function(newAge){
|
|
|
+ if(typeof newAge === "number"){
|
|
|
+ age = newAge;
|
|
|
+ }
|
|
|
+ return age;
|
|
|
+ }
|
|
|
+ this.getAge = function(){
|
|
|
+ return age;
|
|
|
+ }
|
|
|
+ this.setSex = function(newSex){
|
|
|
+ if(typeof newSex === "string"){
|
|
|
+ sex = newSex;
|
|
|
+ }
|
|
|
+ return sex;
|
|
|
+ }
|
|
|
+ this.getSex = function(){
|
|
|
+ return sex;
|
|
|
+ }
|
|
|
+ this.setSalary = function(newSalary){
|
|
|
+ if(typeof newSalary === "number"){
|
|
|
+ salary = newSalary;
|
|
|
+ }
|
|
|
+ return salary;
|
|
|
+ }
|
|
|
+ this.getSalary = function(){
|
|
|
+ return salary;
|
|
|
+ }
|
|
|
+ this.setMarried = function(newMarried){
|
|
|
+ if(typeof newMarried === "boolean"){
|
|
|
+ married = newMarried;
|
|
|
+ }
|
|
|
+ return married;
|
|
|
+ }
|
|
|
+ this.getMarried = function(){
|
|
|
+ return married;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+var objPerson = new Person("pasha","efimenko",22,"male",0,false);
|
|
|
+console.log(objPerson.getName());
|
|
|
+console.log(objPerson.setName("Sasha"));
|
|
|
+console.log(objPerson.getName());
|
|
|
+
|
|
|
+console.log(objPerson.getSurname());
|
|
|
+console.log(objPerson.setSurname("Kovalenko"));
|
|
|
+console.log(objPerson.getSurname());
|
|
|
+
|
|
|
+console.log(objPerson.getAge());
|
|
|
+console.log(objPerson.setAge(40));
|
|
|
+console.log(objPerson.getAge());
|
|
|
+
|
|
|
+console.log(objPerson.getSex());
|
|
|
+console.log(objPerson.setSex("female"));
|
|
|
+console.log(objPerson.getSex());
|
|
|
+
|
|
|
+console.log(objPerson.getSalary());
|
|
|
+console.log(objPerson.setSalary(1000));
|
|
|
+console.log(objPerson.getSalary());
|
|
|
+
|
|
|
+console.log(objPerson.getMarried());
|
|
|
+console.log(objPerson.setMarried(true));
|
|
|
+console.log(objPerson.getMarried());
|
|
|
+```
|
|
|
+
|
|
|
+### setFather, getFatherName, addChild
|
|
|
+
|
|
|
+```javascript
|
|
|
+function Person(name, surname, age, sex, salary, married){
|
|
|
+ var childs = [];
|
|
|
+ this.setName = function(newName){
|
|
|
+ if(typeof newName === "string"){
|
|
|
+ name = newName;
|
|
|
+ }
|
|
|
+ return name;
|
|
|
+ }
|
|
|
+ this.getName = function(){
|
|
|
+ return name;
|
|
|
+ }
|
|
|
+ this.setSurname = function(newSurname){
|
|
|
+ if(typeof newSurname === "string"){
|
|
|
+ surname = newSurname;
|
|
|
+ }
|
|
|
+ return surname;
|
|
|
+ }
|
|
|
+ this.getSurname = function(){
|
|
|
+ return surname;
|
|
|
+ }
|
|
|
+ this.setAge = function(newAge){
|
|
|
+ if(typeof newAge === "number"){
|
|
|
+ age = newAge;
|
|
|
+ }
|
|
|
+ return age;
|
|
|
+ }
|
|
|
+ this.getAge = function(){
|
|
|
+ return age;
|
|
|
+ }
|
|
|
+ this.setSex = function(newSex){
|
|
|
+ if(typeof newSex === "string"){
|
|
|
+ sex = newSex;
|
|
|
+ }
|
|
|
+ return sex;
|
|
|
+ }
|
|
|
+ this.getSex = function(){
|
|
|
+ return sex;
|
|
|
+ }
|
|
|
+ this.setSalary = function(newSalary){
|
|
|
+ if(typeof newSalary === "number"){
|
|
|
+ salary = newSalary;
|
|
|
+ }
|
|
|
+ return salary;
|
|
|
+ }
|
|
|
+ this.getSalary = function(){
|
|
|
+ return salary;
|
|
|
+ }
|
|
|
+ this.setMarried = function(newMarried){
|
|
|
+ if(typeof newMarried === "boolean"){
|
|
|
+ married = newMarried;
|
|
|
+ }
|
|
|
+ return married;
|
|
|
+ }
|
|
|
+ this.getMarried = function(){
|
|
|
+ return married;
|
|
|
+ }
|
|
|
+ this.setFather = function(obj){ //setFather
|
|
|
+ this.father = obj;
|
|
|
+ return this.father;
|
|
|
+ }
|
|
|
+ this.getFatherName = function(){ //getFatherName
|
|
|
+ if(this.getSex() === "male"){
|
|
|
+ this.fatherName = this.father.getName() + "ovich";
|
|
|
+ }
|
|
|
+ if(this.getSex() === "female"){
|
|
|
+ this.fatherName = this.father.getName() + "ovna";
|
|
|
+ }
|
|
|
+ return this.fatherName
|
|
|
+ }
|
|
|
+ this.addChild = function(obj){ //addChild
|
|
|
+ childs.push(obj);
|
|
|
+ return childs.length;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+var fatherPerson = new Person("Petr","efimenko",22,"male",0,false);
|
|
|
+var childPerson1 = new Person("pasha","efimenko",10,"male",1231,false);
|
|
|
+
|
|
|
+childPerson1.setFather(fatherPerson);
|
|
|
+console.log(childPerson1.getFatherName());
|
|
|
+
|
|
|
+var childPerson2 = new Person("Anya","efimenko",10,"male",1231,false);
|
|
|
+console.log(fatherPerson.addChild(childPerson1));
|
|
|
+console.log(fatherPerson.addChild(childPerson2));
|
|
|
+```
|
|
|
+
|
|
|
+## Замыкания
|
|
|
+
|
|
|
+//в папке js07
|
|
|
+
|
|
|
+## Рекурсия
|
|
|
+
|
|
|
+### Sum
|
|
|
+
|
|
|
+```javascript
|
|
|
+var n = 10;
|
|
|
+var d = 5;
|
|
|
+var a1 = 1;
|
|
|
+function sum(n, d, a1){
|
|
|
+ if(n === 0)
|
|
|
+ return 0;
|
|
|
+ return a1 + d * (n - 1) + sum(n - 1, d, a1);
|
|
|
+}
|
|
|
+
|
|
|
+var resSum = sum(n, d, a1);
|
|
|
+
|
|
|
+console.log(resSum);
|
|
|
+
|
|
|
+### HTML Tree
|
|
|
+
|
|
|
+var someTree = {
|
|
|
+ tagName: "table", //html tag
|
|
|
+ subTags: [ //вложенные тэги
|
|
|
+ {
|
|
|
+ tagName: "tr",
|
|
|
+ subTags: [
|
|
|
+ {
|
|
|
+ tagName: "td",
|
|
|
+ text: "some text",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ tagName: "td",
|
|
|
+ text: "some text 2",
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ attrs:
|
|
|
+ {
|
|
|
+ border: 1,
|
|
|
+ },
|
|
|
+}
|
|
|
+
|
|
|
+toHTML(someTree);
|
|
|
+
|
|
|
+function toHTML(obj){
|
|
|
+ var tag = document.createElement(obj.tagName);
|
|
|
+ if("attrs" in obj){
|
|
|
+ for (var keys in obj.attrs) {
|
|
|
+ tag.setAttribute(keys, obj.attrs[keys]);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if("text" in obj)
|
|
|
+ tag.innerHTML = obj.text;
|
|
|
+ if("subTags" in obj){
|
|
|
+ for (var i = 0; i < obj.subTags.length; i++){
|
|
|
+ var sub = toHTML(obj.subTags[i]);
|
|
|
+ tag.appendChild(sub);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(obj.tagName === "table")
|
|
|
+ document.body.appendChild(tag);
|
|
|
+ else
|
|
|
+ return tag;
|
|
|
+}
|
|
|
+```
|