第34講 js超級瑪麗小遊戲

◆面向對象變成的綜合案例

clip_image002

遊戲的簡單分析

⑴ 看看如何通過按鈕來控制mario的位置

⑵ 設計相關的對象(Mario x,y)

要求 1、mario碰到邊界,就給個提示

2.mario可以去找另外一個物體

第35講.js超級瑪麗小遊戲2.js面向對象的進一步說明

◆構造函數(方法)介紹

基本用法

funcion 類名(參數列表){

屬性=參數值;

}

舉例:

function Person(name,age){

this.name=name;

this.age=age;

}

//創建Person對象的時候,就可以直接給名字,和年齡

var p1=new Person('abc',80);

window.alert(p1.name);

var p2=new Person('hello',9);

window.alert(p2.name);

構造函數(方法)是一種特殊的方法,它的主要作用是完成對對象實例的初始化。

它有幾個特點:

① 造函數(方法)名和類名相同

② 在創建一個對象實例時,系統會自動的調用該類的構造方法完成新對象的初始化。

→在給一個對象初始化屬性值的時候,也可以制定函數屬性

案例:

function jiSuan(num1,num2,oper){

if(oper=="+"){

return num1+num2;

}else if(oper=="-"){

return num1-num2;

}else if(oper=="*"){

return num1*num2;

}else if(oper=="/"){

return num1/num2;

}

}

function Person(name,age,fun){

this.name=name

this.age=age

this.myfun=fun;

}

var p1=new Person('aa',9,jiSuan);

window.alert(p1.name);

window.alert(p1.myfun(89,90,"+"));

構造方法(函數)小結

① 構造方法名和類名相同

② 主要作用是完成對新對象實例的初始化

③ 在創建對象實例時,系統自動調用該對象的構造方法

◆創建對象的又一種形式

如果一個對象比較簡單,我們可以直接創建(可以指定普通屬性和函數屬性)

var dog={name:'小狗',age:8};

window.alert(dog.constructor);

window.alert(dog.name+dog.age);

擴展:

var dog={name:'小狗',age:8,

fun1:function(){window.alert("fun1");},

fun2:function(){window.alert("fun2");}

};

window.alert(dog.constructor);

window.alert(dog.name+dog.age);

dog.fun1();

dog.fun2();

練習題:

var dog={name:'hello'};

function test(){

window.alert(this.name);

}

test();//輸出空

window.test();//輸出空

test.call(dog);//<==> dog.test();

有時,我們會看到這樣一種調用方法

函數名.call(對象實例);

//這樣調用,該函數的this就是對象實例。

var dog={name:'小明',sayHello:function(a,b){window.alert("結果="+(a+b));}};

////循環列出dog對象的所有屬性和方法 對象名['屬性名']

for(var key in dog){

window.alert(dog[key]);

}

//循環列出window對象的所有屬性和方法

document.writeln("****當前瀏覽器 window對象有的屬性和方法****");

for(var key in window){

document.writeln(key+":"+window[key]+"<br/>");

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章