js函式物件

2022-03-09 11:07:57 字數 2809 閱讀 3219

//

function測試

//函式是可以巢狀的

function

functest()

return square(10);

}functest();

//在函式體內可以通過arguments.length獲取傳入函式的實參個數

function

fun1(x, y)

fun1(10,1);

//將函式繫結到物件裡

var fun2 = function

()

var o = ;

o.fn();

1、物件直接量。

var point = ;  //point就是乙個物件,跟c#不同,它不需要一定有類才能建立物件。

2、通過new建立物件

var d = new date();    //建立乙個date物件

3、原型

object.prototype  //用於獲取物件原型的引用。所有物件都直接或間接繼承自object.prototype,相當於c#中的system.object();

通過new date()建立的物件同時繼承自date.prototype和object.prototype。

4、object.create()

object.create()是乙個靜態函式,可以用它建立乙個新物件。

1、屬性的讀取有兩種方法。可以通過"."和""來讀取。

如:var author = book.author;

var author = book["authoe"];

設定也一樣:

book.author = "劉德華";

book["author"] = "劉德華";

注意,如果物件的屬性名與保留字一樣,則必須通過方括號讀取。

如:book["class"];

另外用方括號訪問就個好處,就是在執行時確定屬性名如book["author" + 1];

2、繼承

如果要查詢物件o的屬性x,如果o沒有屬性x,則會到o的原型去查,一級一級往上,直到object.prototype。

var o ={};

o.x = 1;

var p =object.create(o);

p.x = 2;         //

改變了繼承的屬性x

document.write(p.x);  //

輸出2,p.x繼承自o.x

var q =object.create(o);

document.write(q.x);  

//輸出1,p改變的是自己x,改變不了原型的x

delete()   delete()方法只能夠刪除自有屬性,不能夠刪除繼承屬性。delete()只是斷開屬性和宿主物件的聯絡,而不回去操作屬性中的屬性。

var book =

delete book.author;        //

此行**也可寫成delete book["author"]

document.write(book.author);  //

book.author的值為undefined,因為已經被刪除了

in:檢測某物件是否含有某個屬性

var o =  

document.write("x" in o);  //

返回true  x是o的乙個屬性

document.write("y" in o);  //

返回false  y不是o的屬性

hasownproperty() 檢測物件中是否含有某屬性

var o =

document.write(o.hasownproperty("x"));  //

返回true  o中含有名為"x"的屬性

document.write(o.hasownproperty("y"));  //

返回false  o中不含有名為"y"的屬性

get() set()屬性訪問器  沒有相應的get(),set()則為唯讀,或只寫屬性。

var o =,

set setx(n)

};document.write(o.getx);  

//讀取屬性值,返回1

o.setx = 2;         //

如果將set setx(n)這行注釋,則這行**可以相當於不存在,設定無效。x依然為1,但不會報錯。

document.write(o.getx);  //

再次讀取返回2

writeable:是否可寫。

enumerable:是否可列舉。

configurable:是否可配置。

這個東西非常有用,能夠將物件序列化成字串之後傳輸,也能夠將物件以字串的格式存在cookie裡,拿出來後再反序列化成物件。

json.stringify()   序列化物件(物件轉成字串便於傳輸)

json.parse()    反序列化物件(字串轉換成原物件,是源物件深拷貝)

var man = ;

var str = json.stringify(man);    //

將物件man序列化成json字串

document.write(str);

var newman = json.parse(str);     //

將字串反序列成物件

document.write("

" + newman.name + "," + newman.age);  //

輸出反序列化後的物件的屬性

js 函式 物件

函式的宣告 function 關鍵字 function 函式名 形參 表示式方式 var 函式名 function 形參 var 函式名 new function 參1 jscode 呼叫函式 加括號是呼叫 不加括號是引用該函式 js函式特點 可用重複定義 如果沒有返回值 預設返回undefined...

JS基礎 物件 函式

建立物件 方式一 var obj new object 方式二 var obj 向物件中新增屬性 語法 物件.屬性名 屬性值 物件 屬性名 屬性值 讀取物件中的屬性 語法 物件.屬性名 物件 屬性名 刪除物件中的屬性 語法 delete 物件.屬性名 delete 物件 屬性名 使用in檢查物件中是...

js函式物件建立

var book function name,title,price var book book js 2012 12.4 var book2 new book js 2012 12.4 上面建立的book與book2不同之處。執行一下 consol.log book 返回undefine 未定義 ...