一.值類(lèi)型和引用類(lèi)型
<script>
? ? ? ? function upateNum(num2){
? ? ? ? ? ? console.log('num2='+num2);
? ? ? ? ? ? num2+=5
? ? ? ? ? ? console.log('numn2='+num2);
? ? ? ? }
? ? ? ? let num1 = 5 ?//number類(lèi)型
? ? ? ? // 值類(lèi)型再調(diào)用方法傳遞時(shí),傳遞的是值
? ? ? ? upateNum(num1)
? ? ? ? console.log('num1='+num1);
? ? ? ? console.log('--------------------');
? ? ? ? function updateArr(arr2){
? ? ? ? ? ? console.log('arr2',arr2);
? ? ? ? ? ? arr2.push(66)
? ? ? ? ? ? console.log('arr2',arr2);
? ? ? ? }
? ? ? ? // 數(shù)組是引用類(lèi)型
? ? ? ? let arr1 =[11,22,33,44,55]
? ? ? ? updateArr(arr1)
? ? ? ? console.log('arr1',arr1);
? ? ? ? // let arr3 =arr1
? ? ? ? // let arr4 =arr1
? ? ? ? // let arr5 =arr1
? ? </script>
二.原型對(duì)象
<script>
? ? ? // 構(gòu)造函數(shù)(類(lèi))有原型對(duì)象厕九,其實(shí)就是構(gòu)造函數(shù)身上的一個(gè)自帶屬性哎壳,這個(gè)屬性是:prototype
? ? ? // ?對(duì)象也有原型對(duì)象,其實(shí)就是對(duì)象身上的一個(gè)自帶屬性馋嗜,這個(gè)屬是:_proto_
? ? ?// 所有同類(lèi)型的對(duì)象身上的原型對(duì)象屬性湾笛,都指向類(lèi)的原型對(duì)象屬性
? ? // ?類(lèi)和對(duì)象的原型對(duì)象身上掛的方法碳胳,對(duì)象可以直接使用烦租,不需要經(jīng)過(guò)原型對(duì)象 ?
? ? ? function Student(name,age,sex){
? ? ? ? ? this.name=name
? ? ? ? ? this.age=age
? ? ? ? ? this.sex=sex
? ? ? ? ? // 如果將方法直接定義在類(lèi)里面丸冕,將來(lái)根據(jù)這個(gè)類(lèi)創(chuàng)建的每個(gè)對(duì)象耽梅,都要?jiǎng)?chuàng)建自己獨(dú)立的這些方法
? ? ? ? ?// 如果要?jiǎng)?chuàng)建很多對(duì)象,對(duì)內(nèi)存的開(kāi)銷(xiāo)會(huì)很大胖烛。
? ? ? ? ?/* ?this.sayHi=function(){
? ? ? ? ? ? ? console.log(`Hi!我叫${this.name},今年${this.age}歲眼姐,性別是${this.age}`);
? ? ? ? ? }
? ? ? ? ? this.study=function(time){
? ? ? ? ? ? console.log(`Hi!我叫${this.name},我每天學(xué)習(xí)${this.time}小時(shí)`);
? ? ? ? ? }
? ? ? ? ? this.pla=function(time){
? ? ? ? ? ? console.log(`Hi!我叫${this.name},我每天玩${this.play}小時(shí)`);
? ? ? ? ? } */
? ? ? }
? ? ? // 我們可以將類(lèi)的方法,添加到類(lèi)的原型對(duì)象身上 ?
? ? ? Student.prototype.sayHi=function(){
? ? ? ? ? ? ? console.log(`Hi!我叫${this.name},今年${this.age}歲,性別是${this.age}`);
? ? ? ? ? }
? ? ? Student.prototype.study=function(time){
? ? ? ? ? ? console.log(`Hi!我叫${this.name},我每天學(xué)習(xí)${time}小時(shí)`);
? ? ? ? ? }
? ? ? ?Student.prototype.play=function(time){
? ? ? ? ? ? console.log(`Hi!我叫${this.name},我每天玩${time}小時(shí)`);
? ? }
? ? ? let s1=new Student('張三',20,'男')
? ? ? let s2=new Student('李四',22,'女')
? ? ? let s3=new Student('王五',24,'男')
? ? // ? 查了Student類(lèi)的原型對(duì)象
? ? // console.log(Student.prototype)
? ? // ?查看三個(gè)對(duì)象的原型對(duì)象 -- 你會(huì)發(fā)現(xiàn)佩番,長(zhǎng)得不一樣
? ? // console.log(s1._proto_);
? ? // console.log(s2._proto_);
? ? // console.log(s3._proto_);
? ? s1.sayHi()
? ? s1.study(8)
? ? s1.play(3)
? ? console.log('---------------------------');
? ? s2.sayHi()
? ? s2.study(6)
? ? s2.play(6)
? ? console.log('-------------------------------');
? ? s3.sayHi()
? ? s3.study(10)
? ? s3.play(1)
? ? </script>