高级面向对象技术
1.目的:利用一种机制可以帮我们创建具有特殊功能的对象
2.封装创建对象的过程【API本质】
1)工厂函数模式
问题:类型无法细分;函数会重复创建,破坏封装性
2)构造函数模式
系统构造函数:Object\Array\Data\Number\String\Boolea\RegExp
自定义构造函数:function mypush(){}
问题:函数会重复创建;破解封装性
3)构造函数模式与原型模式相结合
属性保存在实例中,方法保存在实例的构造函数原型中
function foo(name,age){
this.name = name;
this.age = age;
}
foo.prototype.sayname = function(){
console.log("my name is"+this.name)
}
var one = new foo("wangwu",5);//foo { name: 'wangwu', age: 12 }
3.instanceof
判断对象是否是函数的实例
obj instanceof function
var a = [];
console.log(a instanceof Array);//true
console.log(a instanceof Object);//true
console.log(a instanceof Number);//false
4.继承
1)原型链的继承
子构造函数的原型指向父构造函数的实例
foo.prototype 是Object的实例对象
2)借用构造函数
Dom操作
1.html中添加css代码
style属性、style标签、link herf = “.css”
2.html中添加js代码
事件属性/herf
scrip标签内
scrip src= “.js”
3.第三方js库【操作HTML】