JavaScript(下)
- 對象
可查閱JScript文檔作爲JavaScrip對象參考,兩者差不多
如:String對象
var str ="abc";
var str = new String("abc");
- Prototype 原型屬性
用prototype屬性提供對象的類的一組基本功能。對象的新實例“繼承”賦予該對象原型的操作。
例:要爲Array對象添加返回數組中最大元素值的方法。要完成這一點,聲明該函數,將它加入Array.prototype,並使用它。
function array_max(){
var i,max=this[0];
for(i=1;i<this.length;i++){
if(max<this[i])
max = this[i];
}
return max;
}
Array.prototype.max = array_max;(也可使用匿名函數)
var x =new Array(1,2,3,4);
var y = x.max();
//this爲對本類對象的引用
- JS特有語句-with
格式:
with(對象)
{
在該區域中可以直接使用指定對象的內容,不需要寫 對象.
}
- 特有語句-for in
格式:
for(變量 in 對象)//對自定義對象或數組對象進行遍歷的語句
{
}
例
var arr = [23,34,45];
for(i in arr){
document.write(i); //0,1,2
}
- JS自定義對象
如果想要自定義對象,應該先對對象進行描述,但js是基於對象,不是面向對象的,不具備描述事物的能力。
我們還想按照面向對象的思想編寫js,就要先描述
在js中,可以用函數來模擬面向對象中的描述
例:
//用js來描述人
function Person() //相當於構造器
{
alert("person run");
}
//通過描述進行對象的建立。new
var p = new Person();
//動態給p對象添加屬性。直接使用p.屬性名即可
p.name="zhangsan";
p.age=29;
//如果定義的p對象的屬性賦值爲一個函數,即是給p對象添加一個方法
p.show = function(){
alert("show:"+this.name+":"+"this.age);
}
只要new一個對象,可隨時向對象動態添加屬性
- 第二種方式
function Person(name,age){
this.name=name;
this.age=age;
this.setName=function(name){
this.name=name;
}
this.getName = function(){
return this.name;
}
}
var p =new Person("旺財",20);
-
第三種方式
var person = { //定義一些成員 "name":"小明", "age"=12, "getName":function(){ return this.name; } } alert(pp.age+":"+pp.getName()); alert(pp["age"]+":"+pp.getName()); //大括號封裝實體,鍵值對;鍵值對間用逗號隔開