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会一直驻留在内存当中.如果这种方法使用频繁,那么很容易就把机器的内存消耗完.因此建议能用函数的地方就尽量使用函数,而不要使用闭包
分享到:
相关推荐
DeePool通过实现JavaScript对象池,为开发者提供了一种优化内存使用、提高程序运行效率的有效手段。尤其在需要大量创建和销毁对象的场景下,使用DeePool可以显著提升性能,减少内存压力。掌握并合理运用DeePool,...
### JavaScript对象属性详解 在深入探讨JavaScript对象属性之前,我们首先需要理解JavaScript是一种广泛应用于网页开发的编程语言,它能够使网页变得动态、交互性更强。JavaScript中的对象是其核心特性之一,几乎...
本篇文章将深入探讨JavaScript对象属性排序的原理、方法以及注意事项。 首先,了解JavaScript对象的基本特性是至关重要的。在ECMAScript规范中,对象的属性访问速度并不依赖于属性的位置或顺序,因为它们内部是通过...
每个JavaScript对象都有一个`__proto__`属性,指向创建该对象的构造函数的原型。原型对象也是一个对象,可以通过`prototype`属性来访问。我们可以在原型上定义方法,这样所有实例都可以访问这些方法: ```...
JavaScript(简称JS)是Web开发中的重要脚本语言,尤其在客户端编程中不可或缺。本文将深入探讨JS对象的实例创建、属性与方法、原型链、继承机制以及在实际应用中的常见场景。 一、JS对象实例的创建 1. 构造函数...
JavaScript对象具有原型链,允许对象继承其他对象的属性和方法。`__proto__`(非标准,推荐使用`Object.getPrototypeOf`)指向其构造函数的原型: ```javascript var parentObj = { parentMethod: function() {} }; ...
在JavaScript中,JSON字符串与JavaScript对象之间可以方便地进行转换,这对于数据传输和存储至关重要。本篇文章将深入探讨JSON字符串与JS对象之间的转换方法。 1. `eval` 函数转换 `eval()` 是JavaScript中的一个...
有关js对象的操作和遍历对象小练习带注释.html
- **对象与数组**:如何定义JavaScript对象和数组,并在QML中使用它们来存储和操作数据。 - **函数与方法**:定义和调用JavaScript函数,以及在QML对象上添加自定义方法。 - **信号与槽**:利用JavaScript处理QML的...
这个类将作为JavaScript对象的实现,需要包含以下内容: ```cpp #include <JavaScriptCore/JavaScript.h> class MyJsObject : public JSGlobalContextRef::GlobalObject { // ... }; ``` 在这个类中,你可以定义...
XPath是一种在XML文档中查找信息的语言,但在JavaScript对象中,城市名称通常不需要XPath来访问。而“有无城市名称后缀”,可能是指某些城市坐标信息中可能包含了额外的信息,比如“市”或“区”的后缀,这取决于...
总的来说,理解并掌握JavaScript对象和数组的监听机制,有助于我们更好地实现MVVM,提高代码的可维护性和性能。通过这个实例,开发者可以深入学习到如何利用原生JavaScript实现数据绑定和实时更新,这对于前端开发者...
### JavaScript对象读取速度实例详解 #### 一、引言 在JavaScript开发中,了解对象的访问机制对于提高代码执行效率至关重要。本文将基于提供的文件信息,深入探讨JS对象读取速度的影响因素,并通过具体示例来展示...
JavaScript对象允许动态添加、修改和删除属性,无需预先声明。 五、原型与继承 在JS中,每个对象都有一个隐式原型属性 `__proto__`,指向创建它的构造函数的原型。这使得对象可以继承其他对象的属性和方法。通过 `...
### JavaScript对象模型-执行模型详解 #### 一、基本数据类型 JavaScript作为一种广泛使用的脚本语言,在其设计之初便提供了一系列的基本数据类型,这些类型构成了JS语言的基础,并且是理解和运用JS的重要基石。 ...
这时,`CSSobj`应运而生,它是一款高效、便捷的工具,能够帮助开发者将JavaScript对象中的样式规则整合成CSSOM(CSS Object Model),从而实现对CSS样式的动态管理。 **什么是CSSOM?** CSSOM是CSS的DOM表示形式,...
"JAVASCRIPT对象属性大全.doc"和"js对象属性方法大总结.doc"可能涵盖了JavaScript对象的属性和方法,包括但不限于原型链(prototype)、原型对象(__proto__)、构造函数(constructor)、以及如何添加和访问对象的...
标签"工具"可能指的是开发者工具,如浏览器的开发者工具,它们提供调试、性能分析等功能,帮助我们理解JavaScript对象编程的实现和行为。 在提供的Noname2.html文件中,可能包含了一个具体的JavaScript对象编程示例...
JavaScript对象(JS Objects)在JSON中扮演着核心角色。一个JS对象本质上是一个键值对的集合,这些键值对由逗号分隔,并被包裹在花括号{}内。键(key)通常是字符串,而值(value)可以是各种数据类型,包括字符串、...
javaScript对象大全-javaScript必备手册-JS资料-JS教程.doc