一、javascript函数
1.定义函数:函数的通用语法如下
function function_name([parameter [, ...]]) { statements; }
- 由关键字function开始函数的定义
- 接着是函数名,它必须由字母或下划线开始,后面可以是一串字母、数字、$符号或下划线
- 必须带有括号,括号里的参数是可选的,多个参数用逗号(,)隔开
- 封闭的大括号中书写函数代码
2.参数数组(arguments):参数数组可以使得在处理多个参数的变量时更灵活。
function displayItems() { for(j = 0; j < displayItems.arguments.length; ++j) document.write(displayItems.arguments[j] + "<br />") }
3.函数返回值:使用return语句返回函数结果。
document.write(fixNames("the","DALLAS","CowBoys")) function fixNames() { var s = "" for (var i = 0; i < fixNames.arguments.length; ++i) { s += fixNames.arguments[i].charAt(0).toUpperCase() + fixNames.arguments[i].substr(1).toLowerCase() + " " } return s.substr(0,s.length-1) }
上面的代码将输入的字符的首字变为大写,其余字母为小写,并将字符拼接后返回。
如果我们并不想将字符拼接起来,而是返回分离的单个字符,可以使函数返回一个数组:
words = fixNames("the","DALLAS","CowBoys") for(j = 0; j < words.length; ++j) document.write(words[j] + "<br />") function fixNames() { var s = new Array() for(j = 0; j < fixNames.arguments.length; ++j) s[j] = fixNames.arguments[j].charAt(0).toUpperCase() + fixNames.arguments[j].substr(1).toLowerCase() return s }
二、JavaScript对象
1.与其他面向对象的编程语言有一点不一样,JavaScript是基于原型的面向对象的语言,不是严格的面向对象的语言,而是基于对象的语言。JavaScript中没有传统意义上的类去实例化对象 ,但是为了理解方便,我们可以引入概念上的类。对象可以通过一个叫做构造函数的特殊函数来生成的,我们也可以把这个过程看成是类的声明。下面我们来看看一个具体实例:User类的构造方法。
function User(forename,username,password) { this.forename = forename this.username = username this.password = password this.showUser = function() { document.write("ForeName: " + this.forename + "<br />") document.write("UserName: " + this.Username + "<br />") document.write("Password: " + this.password + "<br />") } }
该函数与一般的函数有两点不同:
- 它引用一个名为this的对象,当程序通过运行这个函数创建一个User实例时,this引用被创建的实例。
- 在函数内创建一个名为showUser的新函数
我们可以把这个函数看成一个类:USer类
2.创建对象:使用new关键字创建对象
//直接使用new关键字创建对象 detail = new User("Wolfgang","w.a.mozart","composer") //或者创建空的对象,然后再赋值 detail = new User() detail.forename = "Wolfgang" detail.username = "w.a.mozart" detail.password = "composer" //此外,可以为创建好的对象添加新的属性 detail.greeting = "Hello"
3.访问对象:JavaScript也使用句号(.)来访问一个对象的属性和方法,
4.prototype(原型)关键字:使用prototype定义的属性和方法,类似C++中的静态属性和静态方法。所有由这个实例化的