美文网首页
静态变量和方法

静态变量和方法

作者: jxyjxy | 来源:发表于2016-03-20 20:46 被阅读0次

以下为《JavaScript.info》教程的部分译文。

静态变量和方法

1.静态变量
2.静态方法

函数是一个对象,为我们提供了一个极好的方式来创建静态变量,或者换句话说,这个变量存在于多次调用过程中。
比如,我们希望得到一个记数函数调用的变量。

静态变量

有许多语言允许在一个变量前面加一个static关键词,加了关键词的变量在下次调用过程中不会被清除。
PHP中的静态变量举例:

function f() { // PHP code!
  static $count = 0;
  echo ++$count;
}
f(); f(); f(); // 1 2 3

在JavaScript中没有static关键词或其他类似的词,但是我们可以把数据直接放在函数里面(像在其他任何对象一样)

function f() {
  f.count = ++f.count || 1 // f.count is undefined at first 
  alert("Call No " + f.count)
}
f(); // Call No 1 
f(); // Call No 2

当然,一个全局变量能够保持记数,但是利用静态变量的方式能够得到更优的结构体系。
用arguments.callee替代f的代码更为通。

 function f() {
  arguments.callee.count = ++arguments.callee.count || 1 
  alert("Called " + arguments.callee.count + " times")
}

现在,你可以放心的重命名这个函数了。

静态方法

跟静态变量类似,静态方法也绑定到函数上面,一般用于对象。

function Animal(name) {
  arguments.callee.count = ++arguments.callee.count || 1 
  this.name = name
}
Animal.showCount = function() {
  alert( Animal.count )
}
var mouse = new Animal("Mouse")
var elephant = new Animal("elephant")
Animal.showCount()  // 2

相关文章

  • 静态方法、变量与实例方法、变量之比较心得

    静态方法、变量与实例方法、变量之比较心得C# 中常用Static 修饰静态变量和静态方法 静态变量和实例变量有什么...

  • 静态变量与实例变量的理解

    (静态变量又称类变量,静态方法又称类方法)。 静态变量和实例变量的区别? 1、静态变量用static 关键字修饰,...

  • java中Static修饰符静态方法为什么不能调用非静态方法或变

    结论:静态方法只能调用静态方法(或者变量),非静态方法可以调用静态方法(或者变量)原因:类的静态成员(变量或方法)...

  • Java中的静态内部类

    一:静态内部类 使用static修饰的变量是静态变量,使用static 修饰的方法是静态方法,静态变量和静态方法都...

  • Java学习 Day9

    1.static(静态):修饰成员变量,成员方法,静态块。 静态变量和静态方法的调用:类名和对象名调用。调用语法:...

  • 错误: 无法从静态上下文中引用非静态方法

    静态方法中不能引用非静态变量静态方法中不能引用非静态变量静态方法中不能引用非静态变量 静态方法可以通过所在类直接调...

  • java随笔

    static变量和static方法 static变量 1.static修饰的变量:静态变量,静态变量在内存中只有一...

  • static关键字

    在静态方法中不能访问类的非静态成员变量和非静态成员方法,因为非静态成员方法/变量都是必须依赖具体的对象才能够被调用...

  • 继承过程中的 重写与隐藏

    结论 静态的成员变量/方法、非静态的成员变量/方法都可以被 继承。 只有非静态的方法才可以被重写。 静态的成员变量...

  • java学习笔记(第三天)

    static修饰符 静态变量:也被称为类变量。局部变量不能被声明为静态变量。 静态方法:静态方法不能使用类的非静态...

网友评论

      本文标题:静态变量和方法

      本文链接:https://www.haomeiwen.com/subject/lcujkttx.html