您的位置:首页 > Web前端 > JavaScript

JavaScript 面向对象基础总结

2017-08-20 14:52 260 查看
面向对象基础总结


第一天:

​了解了面向对象与面向过程的区别:面向过程就是将一个问题按需要一步一步往下做。而面向对象是将一个问题看成是多个对象,其中包含了属性与方法,当有需要时,就写出相应的方法与功能,在调用。

学习了如何创建对象://var 对象名={属性或方法}

var p={                 //var  对象名={属性或方法};
 name:"李四",        //属性: 属性名:属性值;
 age:20,               //属性或方法结尾用"," 而不是用";"
}

如何调用对象的属性和方法:对象名.属性名/方法名;

①.点语法: 对象名.方法名/属性名 ②[]:对象名["方法名/属性名""]可以包含变量;

var p={
 name:"李四",
 age:20,
 speak:function(){          //属性为函数时:称为方法
   console.log("吃了");
}
}
p.speak();              //p.方法名/属性名   点语法
console.log(p.name);
console.log(p["eat"]);  //p["属性名/方法名"]  []中可以为变量(优点)  

如何给对象添加属性:p.新属性或方法

for...in可以用来遍历对象的所有属性。

var p={
 name:"李四",
 age:20,
}
p.sex="男";          //在对象中添加了sex属性
delete p.age;        //delete 是操作符  所以不用()
console.log(p.age);  // undefined   被删除
for(var i in p){
   console.log(i,p[i])     //遍历对象 输出i:属性名  p[i]:值
}

几种创建对象的方法:

new Object( )创建对象:

缺点:重复用一个接口创建多个对象,产生很多重复代码。

解决:工厂模式的诞生

var p1=new Object();
p1.name="李四";
p1.age="20";
console.log(p);         // name: "李四", age: 20

工厂模型

解决了new Object( )的缺点;

function p(name,age,sex){
 var p1=new Object();
 p1.name=name;
 p1.age=age;
 p1.sex=sex;
}
var p=p("李四",20,"男");       //name: "李四", age: 20, sex: "男";

工厂模式缺点:返回的值都是Object,所以无法识别对象的类型;

构造函数创建的对象:

function Fn(name,age,sex){     //Fn构造函数 一般首字母最好大写
this.name=name;         //this 指向 new出的f1
this.age=age;
this.sex=sex;
}
var f1=new fn("李四",20,"男");     //调用普通函数用new就成了构造函数,当没有创建对象时候, this 指向的是window;
console.log(f1);    //name: "李四", age: 20, sex: "男";

注意:构造函数中最好不要return ,return 10;(返回无效);return {}:返回的是空对象
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息