js12---闭包,原型,继承
<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---闭包,原型,继承的更多相关文章
- 【09-23】js原型继承学习笔记
js原型继承学习笔记 function funcA(){ this.a="prototype a"; } var b=new funcA(); b.a="object a ...
- JS面向对象(2) -- this的使用,对象之间的赋值,for...in语句,delete使用,成员方法,json对象的使用,prototype的使用,原型继承与原型链
相关链接: JS面向对象(1) -- 简介,入门,系统常用类,自定义类,constructor,typeof,instanceof,对象在内存中的表现形式 JS面向对象(2) -- this的使用,对 ...
- inheritprototype原型继承封装及综合继承最简实例
1.inheritprototype.js ;(function(){ var s = { inheritObject:function(o){//对象继承封装 ...
- 理解javascript的闭包,原型,和匿名函数及IIFE
理解javascript的闭包,原型,和匿名函数(自己总结) 一 .>关于闭包 理解闭包 需要的知识1.变量的作用域 例1: var n =99; //建立函数外的全局变量 function r ...
- JavaScript-原型&原型链&原型继承
JavaScript-原型&原型链&原型继承 JavaScript的原型是一个重要的知识点,很多扩展应用都是从原型出发的.要说原型,我们先简单说一下函数创建过程.上一篇文章用闭包实现类 ...
- javaScript的原型继承与多态性
1.prototype 我们可以简单的把prototype看做是一个模版,新创建的自定义对象都是这个模版(prototype)的一个拷贝 (实际上不是拷贝而是链接,只不过这种链接是不可见,给人们的感觉 ...
- JS继承之原型继承
许多OO语言都支持两种继承方式:接口继承和实现继承.接口继承只继承方法签名,而实现继承则继承实际的方法.如前所述,由于函数没有签名,在ECMAScript中无法实现接口继承.ECMAScript只支 ...
- JS原型继承和类式继承
前言 一个多月前,卤煮读了一篇翻译过来的外国人写的技术博客.此君在博客中将js中的类(构造)继承和原型继承做了一些比较,并且得出了结论:建议诸位在开发是用原型继承.文中提到了各种原型继承的优点,详细的 ...
- 高级javascript---原型和原型继承
高级javascript---原型和原型继承 在 JavaScript 中,prototype 是函数的一个属性,同时也是由构造函数创建的对象的一个属性. 函数的原型为对象. 它主要在函数用作构造函数 ...
- web前端学习(二) javascript对象和原型继承
目录 1. JavaScrpt对象 2. 原型对象和继承 3. 对象的克隆 (1)javascript对象 在JS中,对象是属性的容器.对于单个对象来说,都由属性名和属性值构成:其中属性名需要是标识符 ...
随机推荐
- 用例子看ASP.NET Core Identity是什么?
原文:用例子看ASP.NET Core Identity是什么? 目录 前言 基于声明的认证(Claims-based Authentication) Claim 在ASP.NET Core Iden ...
- Spring Cloud分布式Session共享实践
通常情况下,Tomcat.Jetty等Servlet容器,会默认将Session保存在内存中.如果是单个服务器实例的应用,将Session保存在服务器内存中是一个非常好的方案.但是这种方案有一个缺点, ...
- rsyslog学习
http://blog.csdn.net/zhaoyangjian724/article/details/52116809 http://blog.csdn.net/zhangxihangzhuan/ ...
- POJ——T 1988 Cube Stacking
http://poj.org/problem?id=1988 Time Limit: 2000MS Memory Limit: 30000K Total Submissions: 25865 ...
- 怎样查看电脑的IP地址
在DOW窗体 :cmd->ipconfig 见截图:
- [Python] numpy fillna() for Dataframe
In the store marketing, for many reason, one stock's data can be incomplete: We can use 'forward fil ...
- berkeley db储存URL队列的简单实现增、删、查
Berkeley DB(BDB)是一个高效的嵌入式数据库编程库,C语言.C++.Java.Perl.Python.Tcl以及其它非常多语言都有其相应的API. Berkeley DB能够保存随意 ...
- javascript中运算符有哪些? 他们的优先级 呢?
一元操作符 ++, -- + -(正负)逻辑操作符 ! && ||基本运算符 +, -, *, /, %关系操作符 >, <, >=, <=, ===, ==, ...
- vmware-images
https://virtualboxes.org/images/centos/ https://www.osboxes.org/vmware-images/
- Flex 最全的换行,制表符,回车,空格......特殊符号
字符 十进制字符编号 实体名字 说明 — &#; — 未使用Unused — &#; — 未使用Unused — &#; — 未使用Unused — &#; — 未使用 ...