面向对象---初识对象

简介:

<!doctype html>

<html lang="en">

<head>

<meta charset="UTF-8">

<title>

1
面向对象---初识对象

</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>



本文转自 沉迷学习中 51CTO博客,原文链接:http://blog.51cto.com/12907581/1926218,如需转载请自行联系原作者
相关文章
|
6月前
|
安全 Java
JAVA类和对象(封装,继承,多态)(二)
JAVA类和对象(封装,继承,多态)
|
7月前
|
存储 弹性计算 JavaScript
面向对象-1:类的定义
本实验将介绍TypeScript中类的定义
25 0
|
6月前
|
Java 编译器
JAVA类和对象(封装,继承,多态)(一)
JAVA类和对象(封装,继承,多态)
|
3月前
|
存储 Java
Java 类与对象(对象的分配机制、对象的创建过程、匿名对象)
Java 类与对象(对象的分配机制、对象的创建过程、匿名对象)
14 0
|
6月前
|
存储 算法 Java
面向对象编程实践:类、对象与继承
面向对象编程实践:类、对象与继承
34 0
|
9月前
|
存储 编译器 C语言
类和对象---初步认识类
类和对象---初步认识类
类和对象---初步认识类
|
9月前
|
C++
【C++多态】 --- 多态实现原理简析
【C++多态】 --- 多态实现原理简析
72 0
|
10月前
|
编译器 C++
类和对象-对象
类和对象-对象
51 0
|
10月前
|
安全 Java 编译器
Java语言-----封装、继承、抽象、多态、接口
Java语言-----封装、继承、抽象、多态、接口
46 0
|
Java
Java面向对象(1)--对象的创建使用类的实例化
Java面向对象(1)--对象的创建使用类的实例化
65 1