js实现Java中的静态变量
在学习的过程中有个需求就是想实现静态变量,想在创建对象前后都能使用这个变量,编写的过程中得到了一下思考:
1.为什么要解决这个问题
答案:有时候并不想给函数创建一个对象,只想直接使用其中的静态变量,直接使用方法名.变量名得到函数的值,但是又想说可以在创建对象以后继续调用这个静态方法,这个时候需求就出来了。也就是说无论何时何地,我们都想使用这个方法,即使是在创建对象之后。虽然有点绕口,但是贴上代码就知道啦哈哈~~~QAQ
2.解决方法的选择:
a.我们想直接调用,那就可以使用对象字面量的方法定义,也就是直接在定义function以后直接function.变量名定义值,后面直接调用就可以。
b.然后我们想说创建对象之后也可以继续调用这个变量或者方法的话,这个时候就需要用prototype进行原型链的拓展,这样的话就能很轻易地在创建对象以后找到这个变量或者方法了。
3.代码的实现
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
</head>
<body>
<script>
function People() {
this.name = "ZhongDagui";
}
People.TYPE = "people"; //单纯的对象字面量并不能创建对象后使用
People.prototype.sayHello = People.sayHello = function() {
return 'Hello';
}; //对象字面量+原型链可以在创建对象前后都能使用
console.log(People.sayHello()); //Hello
console.log(People.TYPE); //people
var xiaoming = new People();
console.log(xiaoming.sayHello()); //Hello
console.log(xiaoming.TYPE); //undefined
</script>
</body>
4.小结
第一篇博客可能会有很多不足的地方,希望博友们给我多提意见,我们一起
进步哈,加油努力干~~~(^_^)