js的类、对象与函数,个人总结
2010-12-03 15:35
288 查看
关于函数
在同一个js文件中,如果有两个相同的函数,则下面的函数起作用
函数参数:对同一个函数,即使不显示的声明其参数,在使用该函数时既可以使用带参数的函数形式,也可以使用不带参数的函数形式
通过使用arguments[0]就可以访问函数的第一个参数,其他依次类推
用arguments对象判断传递给函数的参数个数,即可模拟函数重载
函数名.length可以用来获取该函数的参数个数
函数定义方式:
3.1. 正常的定义
function functionName([arguments]){
Javascript statements
[return expression]
}
3.2. 匿名函数
var func2 = function(…){…};
3.3. 匿名函数加默认参数
var iii = (function(a,b){return a+b;})(1,2);// 后面的括号(1,2)表示创建完后立即进行这个函数调用
关于类
JavaScript中的对象系统是基于原型的,这也意味着它与普通的面向对象语言,比如Java和C++不一样。基于原型意味着,建立新类的时候,是新
建一个包含指定的属性和方法的构造函数,而并不是不是新建立一个类类型。this关键字用于指代那个类生成的实例。可以这样理解this对象,它本质上就
是一个包含成员入口的属性列表。
类的定义方式:
通过构造函数来模拟类
var Person=function(name){//这是一个构造函数
this.name=name;//成员变量,使用this标明是共有变量,如果是var name就是私有变量
}
因为函数有多种写法,所以上面还可以写成:function Person(name)
Person.prototype.say=function(){//成员函数的定义
alert('hi,我是'+this.name);
}
var wanz=new Person('丸子');//实例化对象
wanz.say();//类的实例访问成员函数,输出:hi,我是丸子
var rekey=new Person('rekey,丸子的师傅');//另一个实例
rekey.say();//hi,我是rekey,丸子的师傅
类的静态属性和方法
var Person=function(name){
this.name=name;
}
Person.prototype.say=function(){
alert('hi,我是'+this.name);
}
Person.color='yellow';//静态属性的添加如此简单
alert(Person.color);
var wanz=new Person('丸子');
wanz.say();
alert(wanz.color);//undefined,静态属性color并不会被实例继承
类中静态属性和方法的定义
(http://blog.csdn.net/sevenzhang/archive/2007/03/16/1531518.aspx
)
目前被认可的有两种方法:(同样用上例作说明)
1.采用上述A.value定义静态属性,采用A.func定义静态方法
2.采用上述A.prototype.value定义静态属性,采用A.prototype.func定义静态方法
在一些文献中,
称A.value定义的属性为static class variables
称A.func定义的方法为static class functions
称A.prototype.value定义的属性为shared member variables
称A.prototype.value定义的方法为shared member functions
采用方法1和2在一般情况下是一样的,但是还是有一定的差别,举例说明如下:
(1).类A的实例x并没有属性value2和方法func2,也就是说x.value2和x.func2都不存在,只存在A.value2和A.func2
(2). x.value3改变的时候 A.prototype.value3不改变,但是 A.prototype.value3改变的时候 x.value3将随之改变
Note:this与prototype定义的命名冲突的情况
事实上,编译器尝试先搜索this定义的属性或者方法,当找不到的时候才在prototype中进行寻找。
关于对象:http://www.ccvita.com/94.html
在同一个js文件中,如果有两个相同的函数,则下面的函数起作用
函数参数:对同一个函数,即使不显示的声明其参数,在使用该函数时既可以使用带参数的函数形式,也可以使用不带参数的函数形式
通过使用arguments[0]就可以访问函数的第一个参数,其他依次类推
用arguments对象判断传递给函数的参数个数,即可模拟函数重载
函数名.length可以用来获取该函数的参数个数
函数定义方式:
3.1. 正常的定义
function functionName([arguments]){
Javascript statements
[return expression]
}
3.2. 匿名函数
var func2 = function(…){…};
3.3. 匿名函数加默认参数
var iii = (function(a,b){return a+b;})(1,2);// 后面的括号(1,2)表示创建完后立即进行这个函数调用
关于类
JavaScript中的对象系统是基于原型的,这也意味着它与普通的面向对象语言,比如Java和C++不一样。基于原型意味着,建立新类的时候,是新
建一个包含指定的属性和方法的构造函数,而并不是不是新建立一个类类型。this关键字用于指代那个类生成的实例。可以这样理解this对象,它本质上就
是一个包含成员入口的属性列表。
类的定义方式:
通过构造函数来模拟类
var Person=function(name){//这是一个构造函数
this.name=name;//成员变量,使用this标明是共有变量,如果是var name就是私有变量
}
因为函数有多种写法,所以上面还可以写成:function Person(name)
Person.prototype.say=function(){//成员函数的定义
alert('hi,我是'+this.name);
}
var wanz=new Person('丸子');//实例化对象
wanz.say();//类的实例访问成员函数,输出:hi,我是丸子
var rekey=new Person('rekey,丸子的师傅');//另一个实例
rekey.say();//hi,我是rekey,丸子的师傅
类的静态属性和方法
var Person=function(name){
this.name=name;
}
Person.prototype.say=function(){
alert('hi,我是'+this.name);
}
Person.color='yellow';//静态属性的添加如此简单
alert(Person.color);
var wanz=new Person('丸子');
wanz.say();
alert(wanz.color);//undefined,静态属性color并不会被实例继承
类中静态属性和方法的定义
(http://blog.csdn.net/sevenzhang/archive/2007/03/16/1531518.aspx
)
目前被认可的有两种方法:(同样用上例作说明)
1.采用上述A.value定义静态属性,采用A.func定义静态方法
2.采用上述A.prototype.value定义静态属性,采用A.prototype.func定义静态方法
在一些文献中,
称A.value定义的属性为static class variables
称A.func定义的方法为static class functions
称A.prototype.value定义的属性为shared member variables
称A.prototype.value定义的方法为shared member functions
采用方法1和2在一般情况下是一样的,但是还是有一定的差别,举例说明如下:
(1).类A的实例x并没有属性value2和方法func2,也就是说x.value2和x.func2都不存在,只存在A.value2和A.func2
(2). x.value3改变的时候 A.prototype.value3不改变,但是 A.prototype.value3改变的时候 x.value3将随之改变
Note:this与prototype定义的命名冲突的情况
事实上,编译器尝试先搜索this定义的属性或者方法,当找不到的时候才在prototype中进行寻找。
关于对象:http://www.ccvita.com/94.html
相关文章推荐
- JS常用的对象函数总结归纳
- JS常用的对象函数总结归纳
- 前端总结·基础篇·JS(三)arguments、callee、call、apply、bind及函数封装和构造函数
- C++中的函数指针和函数对象总结
- JS对象与函数纠缠
- JS中把函数作为另一函数的参数传递总结
- JS技术(4)---定义对象,添加函数,改变对象属性
- js入门·对象属性方法大总结
- js函数再总结
- js中函数对象的方法,原型方法apply、call、bind、toString、toLocaleString、valueOf
- js对象内部访问this修饰的成员函数示例
- C++ 虚函数个人总结【初稿】
- 03-2 JS常用函数对象
- JS文档DOM对象模型总结
- js总结(二):函数、作用域和this
- js函数区分数组和对象
- js总结(三):面向对象,prototype ,oo模拟
- 判断两个对象是否相等的js函数
- js验证函数总结
- js基本知识点总结-----js函数基础