博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
js回忆总结
阅读量:6670 次
发布时间:2019-06-25

本文共 1381 字,大约阅读时间需要 4 分钟。

  • 闭包
  1. 在函数内部声明一个函数并返回 
  2. 原函数的内部变量在外部无法访问,但对内部函数是可见的,返回一个内部函数,则对外提供了一个操作函数内部变量的接口
  3. 一直在内存中  
1 var fn=function(){ 2     var i=0;  3     var add=function(){i++;alert(i)}; 4     return add; 5 } 6  7 res=fn(); 8  9 res();         //110 res();         //2

 

  • 封装

    为了实现数据的封装,必须使用作用域,而javascript中唯一具有作用域的是函数,于是数据封闭就通过函数来完成

  1. 私有属性:在构造函数中用 var 定义的, 函数外部无法访问函数内部数据,从而模拟私有
  2. 特权属性和方法: 用this创建, 和对象实例绑定, 可以访问私有属性和方法,(访问私有属性直接使用 属性名; 而访问特权属性,由于和实例绑定,需用 this.属性名); 只有要访问私有属性的函数才应该设计为特权方法;
  3. 公有属性和方法: 在prototype上的属性和方法,子类会继承所有公有成员,并且使用同一份;可以访问特权成员,但无法访问私有成员
  4. 公有静态成员: 在类上定义的类属性,直接用 类命.成员名 访问
1 Obj=function(name,age){ 2     //私有属性 3     var name=name; 4  5     //特权属性 方法 6     this.age=age ; 7     this.getName=function(){
return name} 8 } 9 10 //公有属性 方法11 Obj.prototype.id=1;12 Obj.prototype.getAge=function(){13 return this.age; 14 }15 16 //静态17 Obj.fn=function(){18 ....19 }
  • 继承
  1. 对象冒充
1 function ClassA(name){ 2     this.name=name; 3 } 4 ClassA.prototype.getName=function(){ 5     return this.name; 6 } 7  8 function ClassB(name, age){ 9 //    this.newMethod=ClassA;10 //    this.newMethod(name);11 //    delete this.newMethod;12     ClassA.call(this,name);13     14     this.age=age;15 }16 ClassB.prototype=new ClassA();17 ClassB.prototype.constructor=ClassB;18 ClassB.prototype.getAge=function(){19     return this.age;20 }
  1. 原型链
  2. call()和apply()方法

 

转载于:https://www.cnblogs.com/iori-zy/p/3242227.html

你可能感兴趣的文章
二叉查找树的基本操作实现
查看>>
15.3、SElinux介绍
查看>>
处理job abend基本流程
查看>>
最小二分法
查看>>
maven使用(转载)
查看>>
关于Nagios Core
查看>>
python基本数据类型的介绍
查看>>
原生的js写Ajax请求
查看>>
CSS3中新增属性总结
查看>>
战略合作背后的秘密:VMware沦为AWS的渠道商?
查看>>
day1-接口测试_jmeter_postman
查看>>
Python 文件操作
查看>>
java 中的流程控制
查看>>
Ubuntu 安装 Docker
查看>>
Vue.js 插件开发详解
查看>>
python练习2
查看>>
nodejs中的 Cannot read property'text' of undefined 问题
查看>>
python 函数的定义
查看>>
袁帅:用科技技术助力效益转化 剖析当前会议互动中的移动互联网科技
查看>>
关于机器级二进制位移
查看>>