第六篇 javascript面向对象

一、闭包

闭包是指可以包含*(未绑定到特定对象)变量的代码块。

「闭包」,是指拥有多个变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分。

闭包是个函数,而它「记住了周围发生了什么」。表现为由「一个函数」体中定义了「另个函数」

由于作用域链只能从内向外找,默认外部无法获取函数内部变量。闭包,在外部获取函数内部的变量。

<script>
name="aa";
function f1(){
var name="bb";
function f2(){
alert(name);
}
return f2
}
var ret=f1();
ret();
</script>

二、面向对象

1、首先介绍prototype

每个函数就是一个对象(Function),函数对象都有一个子对象 prototype对象,类是以函数的形式来定义的。prototype表示该函数的原型,也表示一个类的成员的集合

在通过new创建一个类的实例对象的时候,prototype对象的成员都成为实例化对象的成员。

1、该对象被类所引用,只有函数对象才可引用;

2、在new实例化后,其成员被实例化,实例对象方可调用。

同时,函数是一个对象,函数对象若直接声明成员,不用被实例化即可调用。

具体参考

http://baike.baidu.com/item/prototype/14335187

2、原型

js中的面向对象

没有class  只有函数,函数可以构造出来类

这里的this就相当于 python中的self

创建对象  需要new

这里的数据是封装在对象里的

具体说明 如下:

//      表示创建了一个类Foo,并且创建了Foo类的构造方法
function Foo(name){
this.Name=name;
// 把下面的换成原型
// this.func= function () {
// alert(this.Name)
// }
}
// 创建原型是为了让方法放入类中,每个对象直接来调用就好了
Foo.prototype={
func: function () {
alert(this.Name)
}
}
// 原型的第二种写法
Foo.prototype.func=function(){
alert(this.Name)
}
<script>
function Foo(name,age){
this.Name=name;
thos.Age=age;
}
Foo.prototype = {
Func:function(){
return this.Name+this.Age
}
}
obj1=new Foo("eric",);
ret=obj1.Func();
console.log(ret)
</script>

面向对象原型

上一篇:jquery实现的导航栏切换


下一篇:MyBatis自动生成代码示例