`
firefly_zp
  • 浏览: 19931 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论
文章列表
在大多数面向对象语言中,基本上的都支持继承,首先来宽泛的谈谈大多数 OO 语言的继承方式,之后具体到 javascript 来看看其继承有什么不同之处。 1. 实现继承:实现继承是指派生类(子类)继承了基类(父类)的所有属性和方法,并且有且只有一个基类。 优点是可以直接使用基类的所有属性和方法,缺点不言而喻,基类的一些不必要的方法也会被子类所继承。 比如:基类定义了果树类,里面有开花,结果等方法。派生类继承基类,但如果派生类的中的果树不会开花,只会结果(如:无花果),那么开花对子类就没用,但子类确实继承了基类开花的方法。 在设计模式中,我们更多强调的是面向接口的继承。上面的例子中,果树有 ...
Javascript 中的原型函数(prototype)的工作原理,在 javascript 中每次声明新函数的过程中,就会为其创建一个 prototype 的属性。在未加其他附带条件情况下,所有的 prototype 属性都会自动获取 constractor 属性,constructor 内包含一个指向 prototype 属性所属函数的指针(就是说 constructor 回指构造函数本身)。 举个例子来说,Fruit.prototype.constructor 指向 Fruit。并且可以通过这个构造函数,为其添加更多的属性和方法。 当调用构造函数创建一个新实例后,该实例内部包含一个指针 ...
在 Javascript 中,是没有重载的概念的。我们可以通过将函数名想像为指针的方法对其加以深入的理解(很好理解)。 下面的一个例子可以让大家很容易的明白 Javascript 中无重载的概念。 function addNum(s1){ return 100+s1; } function addNum(s2){ return 200+s2; } alert(addNum(1)); // 输出 201,实际上第二个函数覆盖了第一个函数。 看下面的变量声明函数法对上述概念的理解: var addNum = func ...
在 javascript 中,数组的保存是采用栈的形式保存的,栈是一种后进先出的数据结构。首先我对数组的操作进行一下总结。 第一:声明数组       声明数组的方法其实很简单,有两种。       a> var arrayPluto = new Array(); //注意在这里省略 new 操作符,效果与不省略一样。       b> var arrayPluto = [] // 声明一个空的数组          var arrayPluto = ["red", "blue", "black"] // 声明 ...
经常使用 Javascript 的人会琢磨其垃圾收集机制,Javascript 并不像 C,C++ 那样需要开发者手动去清除垃圾,在编写 Javascript 程序是,开发者无需关心内存使用问题,所需内存分配以及无用内存(垃圾)的回收完全实现了自动管理。究其根源,主要是程序收集那些不再使用的变量,并且释放其占用的内存。因此,垃圾收集机制会按照固定时间间隔,周期性反复的执行这一操作。 举例来说,局部变量只存在于函数内部,程序会为局部变量在栈内存或堆内存中分配对应的存储空间,当函数运行结束,局部变量所占用的内存就没有存在的必要了,这时程序会释放局部变量所占用的内存供其他变量使用。这是程序最简单 ...
在javascript中,我们可能很少会去用到 Label 语句,但是熟练的应用 Label 语句,尤其是在嵌套循环中熟练应用 break, continue 与 Label 可以精确的返回到你想要的程序的位置。 Label 语句,按书本上说的语法是:        Label: statement        如: begin: for (var i = 0; i < 10 ; i++ ){                          alert(i);                    } 举一个比较典型的例子,看完后即明白 Label 的应用:(未 ...
Javascript 中的数值转换主要包含三类:Number(), parseInt() 以及 parseFloat() 具体针对每一个转换就不做具体分析了,大多数书上面都有,这里主要来区分三种数值转换的不同点: 1. Number() 在处理前导为零(例:070)的数值时,会 ...
1. 任何字符串的长度都可以通过 length 来取得        如 var text = "this is Pluto";             alert(text.length);   // 输出 13 2. ECMAScript 中的字符串是不可改变的。要改变某个变量保存的字符串,首先要销毁原来的字符串,然后再用另一个包含新值的字符串填充该变量。 3. 数值转换为字符串: toString() 方法和 String() 方法。两者稍有不同。首先来看看 toString() 方法。        1. 几乎所有的值都有 toString( ...
ECMAScript 中的参数与其他大多数语言中函数的参数有所不同,向 ECMAScript 中传参可以为任意多个,并且ECMAScript 没有限制传入参数的数据类型。这样做的原因是 ECMAScript 中的参数在内部是用一个数组来表示的。函数接收到的始终是数组,而不去关心数组内有哪些参数。 调用参数时,可以通过 arguments 对象来访问参数数组。arguments[0] 代表第一个参数,arguments[1] 代表第二个参数。同时可以通过 arguments.length 来返回参数个数。          例如:                  function fire ...
经常使用 Javascript 的人会琢磨其垃圾收集机制,Javascript 并不像 C,C++ 那样需要开发者手动去清除垃圾,在编写 Javascript 程序是,开发者无需关心内存使用问题,所需内存分配以及无用内存(垃圾)的回收完全实现了自动管理。 ...
Javascript 中 with 的用法并不常见,其主要作用是将代码的作用域指定到某一个特定的对象。 此话说起来比较空洞,下面用一个例子来阐述 with 语句的用法。         例:<body >                 <input value="a ...
Global site tag (gtag.js) - Google Analytics