1. 程式人生 > >面向對象---初識對象

面向對象---初識對象

<script>

<!doctype html>

<html lang="en">

<head>

<meta charset="UTF-8">

<title>

面向對象---初識對象

</title>

<script type="text/javascript">

/*

*表達一個人的完整信息

*/

/*第一種,三個變量之間沒有必然的聯系----->這個變量屬於誰?

var name="張三";

var age = 18;

var marry=true;

alert("姓名:"+name+":年齡"+age+":"+marry);

*/


/*第二種:創建對象的方式

function Person(){

}

var p1 = new Person();

p1.name="張三";

p1.age = 18;

p1.marry= true;

var p2 = new Person();

alert(p2.name);

alert(p1.name+":"+p1.age+":"+p1.marry);

*/

/*

1:類的定義

語法:(建議首字母大小)

function Person(){

}

在js中,沒有類的定義語句(class),只有function,每一個function,我們可以認為它是同名的構造函數

function Person---------->它是Person類的構造函數

》》也可以叫做構造器。

*/

/*

2:聲明對象(類的實例化)

var 對象 = new 類名(參數1,參數2...);--------->java中 類名 對象名 = new 類名();

var p1 = new Person(); ------------------->Person p1 = new Person();

new------->開辟相應內存空間???????

細節一:

function Person(){

alert("Hello world");--------------->實例化時,它將被執行。

}

var p1 = new Person();------------>在實例化時,直接執行了Person構造函數。

*/

/*三:對象屬性的使用

語法:

對象.屬性


對象[‘屬性‘]

在js中,對象屬性是動態添加的。--------------》java中屬性是在類內部定義好的。

對象的屬性可以是任何數據類型,例:string number object;

*/


/*js中,一切皆對象。 ?_? java中,萬物皆對象。


數據類型是string,但實例化了String.

name 也是一個對象。

var name="張三";


重要:三個常用的關鍵字

1:constructor:返回的是對象的構造器。

2:typeof: 返回數據類型。

3:instanceof:判斷對象是否是某個類的實例。

例:

function Person(){

alert("Hello world");

}

var p1 = new Person();

console.log(p1.constructor);

console.log(typeof(p1));

console.log(p1 instanceof Person);

*/


/*四 js:對象在內存中的存在形式

棧:小 運算速度快。(相對於計算機而言) 對象的地址。

堆:大 運算速度慢。 具體的對象(屬性,函數等)。


》》》》普通的數據類型的值是存儲在棧中(string,number等)。


//儲存的是對象的【地址】。

function Person(){

}

var p1 = new Person();

p1.name="張三";

p1.age = 18;

p1.marry= true;

var p2 = p1; p1把對象的地址賦值給了p2,指向同一個堆內存中的對象

p2.name="李四";

console.log(p1.name);


表示釋放p2所占的棧空間,不會影響到p1---->它只是在棧中操作,沒有影響到堆。

p2=null;

alert(p1.name);

*/



</script>

</head>

<body>

</body>

</html>


本文出自 “12897581” 博客,請務必保留此出處http://12907581.blog.51cto.com/12897581/1926218

面向對象---初識對象