function Person(name) {
//非静态属性
this.name = name;
//非静态方法
this.show = function() {
alert('My name is ' + this.name );
}
//也是静态的
Person.age=12;
//非静态
this.aTest=new Array('aa','bb');
}
//添加静态属性,人都是一张嘴
Person.mouth = 1;
//添加静态方法
Person.cry = function() {
alert('Wa wa wa …');
};
//使用prototype关键字添加非静态属性,每个人的牙可能不一样多
Person.prototype.teeth = 32;
//添加非静态方法
Person.prototype.smile = function() {
alert(this.name+'he he he …');
this.aTest.push('cc');
};
Person.prototype.jupm = function() {
alert(this.name+'jump jump …');
var test=this.aTest;
for(var i in test){
alert(test[i]);
}
};
//非静态方法必须通过类的实例来访问
var me = new Person('Zhangsan');
me.smile();
me.jupm();
//使用非静态方法、属性
me.show();
alert('I have ' + me.teeth + ' teeth.');
//使用静态方法、属性
Person.cry();
//Person.smile(); 不能调用
alert('I have ' + me.mouth + ' mouth.');//undefined
alert('I have ' + Person.teeth + ' teeth.');//undefined
alert('I have ' + me.age + ' teeth.');//undefined
var me2 = new Person('lisi');
me2.jupm();//不受me smile()的影响
me2.smile();
me2.teeth=20;
alert('me2 have ' + me2.teeth + ' teeth.');
alert('me have ' + me.teeth + ' teeth.');
我认为闭包就是能够读/写函数内部的某些变量的子函数,并将这些变量保存在内存中.
eg:
function
PoliceMan() {
02.
03.
var
lifeEnergy = 100;
04.
05.
InBullet =
function
(){
06.
lifeEnergy -= 1;
07.
}
08.
09.
function
showLifeEnergy() {
10.
alert(lifeEnergy);
11.
}
12.
return
showLifeEnergy;
13.
}
14.
15.
16.
var
pm =
new
PoliceMan();
17.
18.
pm();
19.
20.
InBullet();
由以上例子我们可以看到警察的生命值变量lifeEnergy会一直驻留在内存当中.如果这种方法使用频繁,那么很容易就把机器的内存消耗完.因此建议能用函数的地方就尽量使用函数,而不要使用闭包
分享到:
相关推荐
javascript 对象操作作业题,面向对象操作题
有关js对象的操作和遍历对象小练习带注释.html
JavaScript对象模型
学习中总结的一些js属性,顺便赚点积分。
支持将自身转换成json字符串输出
deePool:高效的JavaScript对象池
javaScript对象大全-javaScript必备手册-JS资料-JS教程.doc
ExtJs2.0学习系列(1)--Ext.MessageBox
• navigator • screen • window o history o location o frames[]; Frame o document anchors[]; links[];...浏览器对象 屏幕对象 窗口对象 历史对象 地址对象 框架对象 ... 图片对象
检查控制台中的JavaScript对象方法和属性
本文列举了各种JavaScript对象与数组,同时包括对上述每一对象或数组所完成工作的简短描述,以及与其相关的属性方法,以及事件处理程序,还注明了该对象或数组的父对象用户同样可能需要参考Online Companion中的超级...
qim: 复杂嵌套JS对象的简单而强大选择/更新
JSON 语法是 JavaScript 对象表示法语法的子集。 •数据在名称/值对中 •数据由逗号分隔 •花括号保存对象 •方括号保存数组 JSON 对象 JSON 对象在花括号中书写: 对象可以包含多个名称/值对: { firstName:John ...
本人根据w3school.com.cn的在线教程制作,制作之前我找了许多的js参考手册,但是都觉得不是挺实用,所以就做了这个文档,由于不是注册版,所以做的不是很完美,但是... 里面包括了js所有的对象简介,包括正则表达式!
javascript对象大全
帮助理解js 面向对象,以及canvas 的使用
javaScript对象结构图
详解JS对象遍历的顺序问题 可能有些同学听过在 JavaScript 中遍历对象顺序不固定的这一说法。事实上,这个说法不是特别准确。 对待遍历顺序,对象有一套自己既定的规则,在此规则下呢,对象的遍历顺序会受插入...
本文列举了各种JavaScript对象与数组,同时包括对上述每一对象或数组所完成工作的简短描述,以及与其相关的属性方法,以及事件处理程序,还注明了该对象或数组的父对象用户同样可能需要参考Online Companion中的超级...
全国行政区划数据 js对象数组