面向对象
标签(空格分隔): 面向对象
第一章:面向对象(上)
- 什么叫面向对象 面向过程、面向对象、两者区别
- 构造函数 什么叫构造函数 、什么是工厂模式
工厂模式:在函数内部创建一个对象,赋予属性和方法,然后返回对象。
function a(name){
var b = new object();
b.name = name;
b.say = function(){
alert(this.name);
}
return b //必须有返回值
}
构造函数:弥补工厂模式不能识别对象类型,可以创建特定类型,如Array,Date等。
function Blog(name, url) {
this.name = name;
this.url = url;
this.alertUrl = function() {
alert(this.url);
}
}
var blog = new Blog('aaa', 'http://www.xxx/');
//即为Blog的实例,也为Object的实例
console.log(blog instanceof Blog); // true
console.log(blog instanceof Object); // true
- 原型prototype
每个函数都具有一个prototype属性,用来实现基于原型的函数继承与属性的共享。
对象由函数创建,对象具有一个__proto__
属性,称为隐式原型,指向创建这个对象的函数(constructor)的prototype。
隐式原型是作用是构成原型链,同样是用于实现基于原型的继承,当访问一个obj的属性x时,x找不到,则会沿着obj.__proto__
往下寻找。
- instanceof
L instanceof R L.__proto__.__proto__ ..... ===> R.prototype
一般L是个对象,R是构造函数,用来判断L是否是R的对象,返回true or false
第二章:面向对象(中)
- 方法链
- 包装对象
- 原型链
- 原型的默认属性和方法
- 继承的多种方式 、 类继承 、 复制继承、对象继承、更多继承方式省
第三章:面向对象(下)
- 闭包 什么叫闭包 、闭包有什么特点
闭包可以有权限访问其他函数作用域内变量的一个函数。就是将函数内部和外部连接在一起的桥梁。因为变量的作用域是函数创建的时候确定的,函数执行完成后,作用域也会销毁,内存也会比回收,而闭包是建立在函数内部的子函数,可以访问上级作用域,因此即使上级函数执行完成,作用域也不会被销毁(关系到内存机制)
闭包的优点:设计私有的方法和变量。
闭包的缺点:常驻内存,滥用闭包容易造成内存溢出。
- 递归 什么是递归、哪些时候会用递归
- 如何开发插件
网友评论