<html>
<body>
<script type="text/javascript">
//闭包实现了函数层面多个子函数共享父类函数的属性、方法(继承)。类层面上原型实现了多个子类对象共享父类对象的属性、方法(继承)。
//函数每调用一次,就会开启一个新的内存区域让函数执行。类的成员方法也是,每调用一次就开辟一个新的内存区域。
function f1(){
var b = ;
var c = function(){alert();}
return function(g){
b++;
if(g == ){
c = function(){alert(b);alert();}
}
c();
}
} var d1 = f1();//大函数return函数模版,函数模版多次执行时地址不一样,
alert("===");
d1();//
alert("---");
d1();//3 456,改变了大函数的c
alert("+++");
d1();//4 456,使用改变了的c var d2 = f1();//大函数return函数模版,函数模版多次执行时地址不一样,
alert("===");
d2();//
alert("---");
d2();//3 456,改变了大函数的c
alert("+++");
d2();//4 456,使用改变了的c
</script>
</body>
</html>
        var cat = (function(){//函数嵌套,就是类中类,
//私有静态属性
var AGE = 10;
//私有函数
function add(x,y){
return x+y;
}
return function(){
//多个子类,使用外层闭包的公有的属性和方法
this.age = ++AGE;
this.add = function(x,y){
//alert(age);//age is not defined
return add(x,y)
}
this.setAge = function(age){
AGE = age;
}
}
})()
alert(new cat().add(1,2));//3,new的时候函数会执行一次
alert(new cat().age);//12
new cat().setAge(100);
alert(new cat().age);//
function Person(name , age){
this.name = name ;
this.age = age ;
this.sayName = function(){alert('我是姓名!')};//sayName指的是函数模型,不同对象的成员方法执行都会开辟新内存区域,
}
var p1 = new Person('z3',);
var p2 = new Person('z4',);
alert(p1.sayName == p2.sayName); // false

var定义的属性和方法相当于是私有的属性和方法,不同函数对象的方法的地址是不一样的。

js12---闭包,原型,继承的更多相关文章

  1. 【09-23】js原型继承学习笔记

    js原型继承学习笔记 function funcA(){ this.a="prototype a"; } var b=new funcA(); b.a="object a ...

  2. JS面向对象(2) -- this的使用,对象之间的赋值,for...in语句,delete使用,成员方法,json对象的使用,prototype的使用,原型继承与原型链

    相关链接: JS面向对象(1) -- 简介,入门,系统常用类,自定义类,constructor,typeof,instanceof,对象在内存中的表现形式 JS面向对象(2) -- this的使用,对 ...

  3. inheritprototype原型继承封装及综合继承最简实例

    1.inheritprototype.js ;(function(){    var s = {        inheritObject:function(o){//对象继承封装           ...

  4. 理解javascript的闭包,原型,和匿名函数及IIFE

    理解javascript的闭包,原型,和匿名函数(自己总结) 一 .>关于闭包 理解闭包 需要的知识1.变量的作用域 例1: var n =99; //建立函数外的全局变量 function r ...

  5. JavaScript-原型&原型链&原型继承

    JavaScript-原型&原型链&原型继承 JavaScript的原型是一个重要的知识点,很多扩展应用都是从原型出发的.要说原型,我们先简单说一下函数创建过程.上一篇文章用闭包实现类 ...

  6. javaScript的原型继承与多态性

    1.prototype 我们可以简单的把prototype看做是一个模版,新创建的自定义对象都是这个模版(prototype)的一个拷贝 (实际上不是拷贝而是链接,只不过这种链接是不可见,给人们的感觉 ...

  7. JS继承之原型继承

     许多OO语言都支持两种继承方式:接口继承和实现继承.接口继承只继承方法签名,而实现继承则继承实际的方法.如前所述,由于函数没有签名,在ECMAScript中无法实现接口继承.ECMAScript只支 ...

  8. JS原型继承和类式继承

    前言 一个多月前,卤煮读了一篇翻译过来的外国人写的技术博客.此君在博客中将js中的类(构造)继承和原型继承做了一些比较,并且得出了结论:建议诸位在开发是用原型继承.文中提到了各种原型继承的优点,详细的 ...

  9. 高级javascript---原型和原型继承

    高级javascript---原型和原型继承 在 JavaScript 中,prototype 是函数的一个属性,同时也是由构造函数创建的对象的一个属性. 函数的原型为对象. 它主要在函数用作构造函数 ...

  10. web前端学习(二) javascript对象和原型继承

    目录 1. JavaScrpt对象 2. 原型对象和继承 3. 对象的克隆 (1)javascript对象 在JS中,对象是属性的容器.对于单个对象来说,都由属性名和属性值构成:其中属性名需要是标识符 ...

随机推荐

  1. 用例子看ASP.NET Core Identity是什么?

    原文:用例子看ASP.NET Core Identity是什么? 目录 前言 基于声明的认证(Claims-based Authentication) Claim 在ASP.NET Core Iden ...

  2. Spring Cloud分布式Session共享实践

    通常情况下,Tomcat.Jetty等Servlet容器,会默认将Session保存在内存中.如果是单个服务器实例的应用,将Session保存在服务器内存中是一个非常好的方案.但是这种方案有一个缺点, ...

  3. rsyslog学习

    http://blog.csdn.net/zhaoyangjian724/article/details/52116809 http://blog.csdn.net/zhangxihangzhuan/ ...

  4. POJ——T 1988 Cube Stacking

    http://poj.org/problem?id=1988 Time Limit: 2000MS   Memory Limit: 30000K Total Submissions: 25865   ...

  5. 怎样查看电脑的IP地址

    在DOW窗体 :cmd->ipconfig 见截图:

  6. [Python] numpy fillna() for Dataframe

    In the store marketing, for many reason, one stock's data can be incomplete: We can use 'forward fil ...

  7. berkeley db储存URL队列的简单实现增、删、查

     Berkeley DB(BDB)是一个高效的嵌入式数据库编程库,C语言.C++.Java.Perl.Python.Tcl以及其它非常多语言都有其相应的API. Berkeley DB能够保存随意 ...

  8. javascript中运算符有哪些? 他们的优先级 呢?

    一元操作符 ++, -- + -(正负)逻辑操作符 ! && ||基本运算符 +, -, *, /, %关系操作符 >, <, >=, <=, ===, ==, ...

  9. vmware-images

    https://virtualboxes.org/images/centos/ https://www.osboxes.org/vmware-images/

  10. Flex 最全的换行,制表符,回车,空格......特殊符号

    字符 十进制字符编号 实体名字 说明 — &#; — 未使用Unused — &#; — 未使用Unused — &#; — 未使用Unused — &#; — 未使用 ...