面向对象(未完成)

2018-04-10  本文已影响0人  微雨竹窗夜话

面向对象

标签(空格分隔): 面向对象


第一章:面向对象(上)

工厂模式:在函数内部创建一个对象,赋予属性和方法,然后返回对象。

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属性,用来实现基于原型的函数继承与属性的共享。
对象由函数创建,对象具有一个__proto__属性,称为隐式原型,指向创建这个对象的函数(constructor)的prototype。
隐式原型是作用是构成原型链,同样是用于实现基于原型的继承,当访问一个obj的属性x时,x找不到,则会沿着obj.__proto__往下寻找。

L instanceof R  
L.__proto__.__proto__ ..... ===> R.prototype

一般L是个对象,R是构造函数,用来判断L是否是R的对象,返回true or false

第二章:面向对象(中)

第三章:面向对象(下)

闭包可以有权限访问其他函数作用域内变量的一个函数。就是将函数内部和外部连接在一起的桥梁。因为变量的作用域是函数创建的时候确定的,函数执行完成后,作用域也会销毁,内存也会比回收,而闭包是建立在函数内部的子函数,可以访问上级作用域,因此即使上级函数执行完成,作用域也不会被销毁(关系到内存机制)
闭包的优点:设计私有的方法和变量。
闭包的缺点:常驻内存,滥用闭包容易造成内存溢出。

上一篇下一篇

猜你喜欢

热点阅读