JavaScript 面向对象基础总结

来源:互联网 发布:mac上的邮箱软件 编辑:程序博客网 时间:2024/05/21 09:39

面向对象基础总结

第一天:

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

学习了如何创建对象://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 {}:返回的是空对象