面向对象编程原型
函数式编程
var testA = document.querySelector('.testA');
testA.onmousemove = function() {
}
testA.onmouseout = function() {
}
面向对象编程
var obj = {
//var that = this;
bind: function() {
this.testA = document.querySelectot(".testA");
this.mouseMove();
this.mouseOut();
}
mouseMove: function() {
this.testA.onmousemove = function() {
}
}
mouseOut: function() {
this.testA.onmouseout = function() {
}
}
}
window.onload = function() {
obj.bind();
}
面向对象编程对比于函数式编程:封装性,扩展性,复用性更高。可以将功能进行更加细致的划分,使功能更加公共化,复用的效果越好
原型
对象分两种:普通对象 object和 函数对象 function
普通对象
var obj = {} //普通对象
function Person() {} //函数对象
var person = new Person()//普通对象(实例化后是普通对象)
prototype是函数才有的属性
__proto__是每个对象都有的属性
原型对象添加属性
function Test(name,age) {
this.name = name;
this.age = age;//私有属性
}
Test.prototype.type= 'dog';//公共属性
Test.prototype.action = function(){};
原型链中一般存储的是公共的属性,方便进行共享复用
构造函数中,写一些私有的东西