首页 > 代码库 > 第六篇 javascript面向对象
第六篇 javascript面向对象
<style>h1 { background-color: palegreen }</style>
面向对象原型
一、闭包
闭包是指可以包含自由(未绑定到特定对象)变量的代码块。
「闭包」,是指拥有多个变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分。
闭包是个函数,而它「记住了周围发生了什么」。表现为由「一个函数」体中定义了「另个函数」
由于作用域链只能从内向外找,默认外部无法获取函数内部变量。闭包,在外部获取函数内部的变量。
<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",18); ret=obj1.Func(); console.log(ret) </script>
第六篇 javascript面向对象
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。