您好,登錄后才能下訂單哦!
<!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>
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。