HTML5总结-JavaScript函数和对象
函数也是值,即可以赋值给变量:
function addOne(num){ return num + 1; }
var plusOne = addOne; //此处并没有调用addOne(),仅仅是使用了函数名
var result = plusOne(1);
匿名函数的使用:
var element = document.getElementById("button");
element.onclick = function() { alert("clicked"); }
(function(){...})();该匿名函数直接执行
JavaScript创建对象(对象字面量):
var myDog = {
name: "xiaogou",
weight: 40,
breed: "Mixed",
loves:["walks","fetching balls"]
};
访问或改变对象的属性:
if(myDog.weight > 25)...
var breed = myDog["breed"];
myDog.loves.push("chewing bones");
枚举对象所有属性:
for(var prop in myDog){...}//属性的顺序是任意的,因此不能依赖一个特定的顺序。
向函数传入一个对象:
function bark(dog) { if(dog.weight > 25) {alert("WOOF");} else((alert("YIP"); }}
bark(myDog);//为节省版面,代码格式已压缩
增加、删除属性:
myDog.age = 5;
delete myDog.age;//删除属性本身(即不光属性的值被删除)
创建构造函数并生成对象:
function Dog(name,breed,weight){
this.name = name;//形参和实参约定俗成:一样
this.breed = breed;
this.weight = weight;
this.bark = function(){
if(this.weight > 25){alert(this.name + "says WOOF!");}
else{alert(this.name + "says YIP");}//留意this的用法
}
}
var a = new Dog("a-dog","Chawalla",8);
var b = new Dog("b-dog","Mixed",21);
a.bark();
b.bark();
单个对象的UML画法:
window对象:
window对象表示你的JavaScript程序的全局环境,同时还表示应用的主窗口。
window对象的一些重要属性和方法Document对象:
虽然document也是window的一个对象,但实际上并不需要写成window.document。document是用来访问DOM的对象。
document对象的一些重要属性和方法元素对象:
DOM中每一个元素都是对象。
任意元素(P)的属性和方法零散:
1、JavaScript 的不同之处(相比于C、C++等):函数定义的前面不用var; 形参前面不用var。
2、向函数传递一个变量-如果在函数中改变相应形参的值:若传递的是基本类型值(按值传递)则不会改变原来的实参值;若传递的是数组/对象(引用传值),则会同时改变实参值。
3、如函数没有return语句,则函数返回undefined
4、只要页面存在,全局变量就活着;局部变量“通常”在函数结束时就消失。
5、同一个域只有一个全局作用域:意味着加载的各个文件(页面、js文件等)看到的是同样一组全局变量,正因如此,一定要当心变量的使用,以避免冲突(尽可能减少/消除全局变量)。
6、函数的位置可以出现在脚本的任何位置,即不依赖顺序。(因为:加载页面时,浏览器会解析页面中和外部文件中的所有js文件,开始执行代码前它会看到所有的函数声明)。需要注意的是:如果不同文件中有两个相同的函数,将使用浏览器最后看到的那个函数。
7、如果赋一个新变量而没有使用var关键字,这个变量就是全局的!即使是在一个函数中首次赋值。
TIPS:本文只是个人对过去的总结,不保证简洁性、系统性、易懂性。如需交流:zhejiangdaxue2011(微信号)