class 相对 function 是后出来的,既然 class 出来了,显然是为了解决 function 在处理面向对象设计中的缺陷而来.下面通过对比,来看看 class 作为 ES6 中的重大升级之一的优势在哪里:为了更好的对比,请参见我的另外一篇博文: js面向对象设计之 function 类. 1.class 写法更加简洁.含义更加明确.代码结构更加清晰.2.class 尽管也是函数,却无法直接调用(不存在防御性代码了).3.class 不存在变量提升.4.class 为污染 windo…
本文仅探讨如何合理的使用 function 在 javascript中实现一个面向对象设计的类.总所周知,javascript 并不能实现一个真正意义上的类,比如 protect 比如 函数重载.下面开始由浅入深的讨论 function 作为类来使用如何尽可能的模拟传统的面向对象设计.还有一篇相关博文(关于 class)可对比阅读:js面向对象设计之class类. 下面的 Class01 一个最简单的类.function Class01( val, pVal ) { this.val = val…
JS详细图解作用域链与闭包 攻克闭包难题 初学JavaScript的时候,我在学习闭包上,走了很多弯路.而这次重新回过头来对基础知识进行梳理,要讲清楚闭包,也是一个非常大的挑战. 闭包有多重要?如果你是初入前端的朋友,我没有办法直观的告诉你闭包在实际开发中的无处不在,但是我可以告诉你,前端面试,必问闭包.面试官们常常用对闭包的了解程度来判定面试者的基础水平,保守估计,10个前端面试者,至少5个都死在闭包上. 可是为什么,闭包如此重要,还是有那么多人没有搞清楚呢?是因为大家不愿意学习吗?还真不是,…
js进阶 10-10  可见伪类选择器和内容伪类选择器的作用 一.总结 一句话总结:分组来描述.内容伪类选择器就是  四个  包含.可见的伪类选择器就是可见和不可见.查找功能,也就是内容伪类选择器非常有用. 1.可见伪类选择器可以做什么? 设置你想是实现的任何元素显示或者隐藏的功能 2.css中元素隐藏两种方法? display和visibility 8 /* ul{display: none;}*/ 9 /* ul{visibility: hidden;}*/ 3.display和visibi…
自己整理JS数据的基本知识 javascript部分: 1.引入的方式包括外链和内联. 2.JS的数据类型有哪些? 原始类型和引用类型; undefined类型,值为undefined; null类型,值为null,表示不存在的对象; boolean布尔类型值为true或是false; 有下段代码:  if(null){  document.write("true");  }else{  document.write("false");  } number类型:表示…
聊一下JS中的作用域scope和闭包closure scope和closure是javascript中两个非常关键的概念,前者JS用多了还比较好理解,closure就不一样了.我就被这个概念困扰了很久,无论看别人如何解释,就是不通.不过理越辩越明,代码写的多了,小程序测试的多了,再回过头看看别人写的帖子,也就渐渐明白了闭包的含义了.咱不是啥大牛,所以不搞的那么专业了,唯一的想法就是试图让你明白什么是作用域,什么是闭包.如果看了这个帖子你还不明白,那么多写个把月代码回过头再看,相信你一定会有收获:…
内容要点: 一.JS中的类 1.JAVA或其他类似强类型 面向对象语言的 类成员的模样 实例字段:它们是基于实例的属性或变量,用以保存独立对象的状态. 实例方法: 它们是类的所有实例所共享的方法,由每个独立的实例调用 类字段:这些属性或变量是属于类的,而不是属于类的某个实例的. 类方法:这些方法是属于类的,而不是属于类的某个实例的 2.JS中的类牵扯三种不同的对象,三种对象的属性的行为和下面三种类成员非常相似: 构造函数对象: 之前提到,构造函数(对象)为JS的类定义了名字.任何添加到这个构造函…
原生JS动态添加和删除类 由于需要, 给按钮组监听点击事件(要求用事件委托),当有一个按钮被点击时,相应的给该按钮添加一个类(激活类),其他没有点击的按钮就要移出该类 添加和和删除类有三种方法 首先等到一个 dom 对象(也叫dom元素), 通过document.getElement--的几种方法得到 如` let element = document.getElementById("box"); 通过类名, 获取类名: el.className, 赋值: el.className =…
前言 Java基础知识-类,多态,Object,数组和字符串,回顾,继承,类的多态性,多态,向上转型和向下转型,Object,数组,多维数组,字符串,字符串比较. 回顾 类的定义格式: [类的修饰符] class 类的名称 [extends 父类名称][implements 接口名称列表] { 变量的定义以及变量的初始化: 方法的定义以及方法体: } 类的修饰符:public,abstract ,final等. private protected public default(缺省) 继承 继承…
对js中局部变量.全局变量和闭包的理解 局部变量 对于局部变量,js给出的定义是这样的:在 JavaScript函数内部声明的变量(使用 var)是局部变量,所以只能在函数内部访问它.(该变量的作用域是局部的).可以在不同的函数中使用名称相同的局部变量,因为只有声明过该变量的函数才能识别出该变量.只要函数运行完毕,本地变量就会被删除. 我们先来逐步理解: 只能在函数内部访问 function test() { var a = 0; return a; } console.log(a); //结果…