javascript面相对象编程

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_22689423/article/details/56512530

javascript面相对象编程
OOP
抽象:抓住核心问题
封装:只能通过对象访问方法
继承:从已有对象继承出新的对象
多态:多对象的不同形态

  1. 工厂模式和构造函数
function createPerson(name){
    var obj = {};
    obj.name = name;
    obj.sayName = function(){
            alert(this.name)
   }
    return obj;
}


var p1 = createPerson('xx').sayName();    //xx

当new去调用一个函数始,this指向该创建出来的对象,后面的函数叫做构造函数

改造 构造函数

function createPersonname){
        this.name = name;
        this.sayName = function(){
                alert(this.name);
        }

}

var p2 = new createPerson('xxx');
p2.sayName(); //xxx

3.对象引用的问题

基本类型:值的复制
对象类型: 引用的传递和值得复制

原型:去改写对象公共的方法和属性,内存存一份,提高性能

普通方法:css中的style 优先级高
原型:css中的class

protopyte 要写在构造函数的下面

function createPersonname){
        this.name = name;  //变化的不能放入原型

}
createPerson.protopyte.sayName = function(){
      alert(this.name);    //公共的方法
}

面向对象编程变形
1.先变形
2.尽量不要出现函数嵌套函数
3.可以有全局变量
4.把onload中不是赋值的语句放在单独的函数中

全局变量就是属性
函数就是方法
onload中创建对象
改this 的this尽量指向对象

猜你喜欢

转载自blog.csdn.net/sinat_22689423/article/details/56512530