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

javascript面相对象编程

2017-02-22 22:56 417 查看
javascript面相对象编程

OOP

抽象:抓住核心问题

封装:只能通过对象访问方法

继承:从已有对象继承出新的对象

多态:多对象的不同形态

工厂模式和构造函数

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 createPerson(name){
this.name = name;
this.sayName = function(){
alert(this.name);
}

}

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


3.对象引用的问题

基本类型:值的复制

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

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

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

原型:css中的class

protopyte 要写在构造函数的下面

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

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


面向对象编程变形

1.先变形

2.尽量不要出现函数嵌套函数

3.可以有全局变量

4.把onload中不是赋值的语句放在单独的函数中

全局变量就是属性

函数就是方法

onload中创建对象

改this 的this尽量指向对象
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  javascript