構(gòu)造函數(shù)及其包裝類

對象

  • 對象的創(chuàng)建方法
    1.var obj = {} plainobject 對象字面量/對象直接量
    2.構(gòu)造函數(shù)
    1)系統(tǒng)自帶的構(gòu)造函數(shù) Object()
    2)自定義
    var obj = new object();執(zhí)行一次生產(chǎn)一個對象 而
    且每次生產(chǎn)的對象都是一模一樣的 但是且相互獨
    立的
    var obj = {};與上面的表達式一樣
  • 大駝峰命名規(guī)則 但凡是個單詞 首字母就得大寫
    TheFirstName 小駝峰是就首字母不用大寫 剩下

都得大寫

function Car(color) {
        this.color = color;
        this.name = "BMW";
        this.height = "1400";
        this.lang =  "4900";
        this.weight = 1000;
        this.health = 100;
        this.run = function () {
          this.health --;
        }
 }
var  car = new  Car('red');通過參數(shù)來改變函數(shù) 發(fā)
生自定義環(huán)節(jié)
 var  car1 = new Car('green');
 car.name = "Maserati";
 car1.name = " Merz";兩個name互不影響
function Student (name,age,sex){
      //var this = {name : ""   age:"" };
     this.name = name;
     this.age = age;
     this.sex = sex;
     this.grade = 2017;
      //return this;
  }
 var  student = new Student ('zhangsan',  18,  'male');
console.log(new Student ('zhangsan',  18,  'male').name);
  • 構(gòu)造函數(shù)內(nèi)部原理
    1.在函數(shù)體最前面隱式的加上this = {}
    2.執(zhí)行 this.xxx = xxx;
    3.隱式的返回this
    只有存在new的情況下才會發(fā)生以上三步,否則就是正常函數(shù)執(zhí)行

    //包裝類
    var num = 4 ;
    num.len = 3;
    //new Number(4).len = 3; delete
    //
    //new Number(4).len
    console.log(num.len);=>underfined

    var str = "abcd";
    str.length = 2;
    //new String('abcd').length = 2; delete
    //new String('abcd').length
    console.log(str.length)=>4
    原始值是不能操作屬性的 但是str本身就有l(wèi)ength這個屬性 而num沒有l(wèi)ength這個屬性

    var str = "abc";
    str += 1;
    var test = typeof(str);//test == "string"
    if(test.length == 6) {
    test.sign = "typeof的返回結(jié)果可能為String“;
    }//new String(test).sign = 'xxx';
    //new String(test).sign
    console.log(test.sign);=>underfined
  • 包裝類的一些問題
var str = "abc";
/new String('abc').length
console.log(str.length)    ->3
正常來講原始值str是沒有屬性的,但是程序為了
不報錯,隱式的進行了一個操作,于是構(gòu)造了一個
字符串對象的構(gòu)造函數(shù)new String( ),然后將內(nèi)
容‘a(chǎn)bc’放在里面,把這個對象進行 . length操作,這
個過程就是包裝類(主要是原始值沒有屬性和方
法,但是生成得對象可以有屬性)
var num = 123;
num.abc  =  “abc”
/new Number(num).abc  =  'abc';    ->delete(為了
不讓它報錯 執(zhí)行完就刪除了)
/兩個長得一樣,彼此獨立,上面那個已經(jīng)被銷毀
了,下面那個是重新建立得
/new Number(num).abc 
console.log(num.abc)    ->underfined
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法,內(nèi)部類的語法,繼承相關(guān)的語法,異常的語法,線程的語...
    子非魚_t_閱讀 34,706評論 18 399
  • 前言 最先接觸編程的知識是在大學(xué)里面,大學(xué)里面學(xué)了一些基礎(chǔ)的知識,c語言,java語言,單片機的匯編語言等;大學(xué)畢...
    oceanfive閱讀 3,395評論 0 7
  • pyspark.sql模塊 模塊上下文 Spark SQL和DataFrames的重要類: pyspark.sql...
    mpro閱讀 9,918評論 0 13
  • 傍晚,樹葉在陰翳中散著蔥綠的幽光,梧桐老樹的影子打在窗玻璃上,如同那亙古的夕陽東升,西落。 “你...
    逝寒閱讀 245評論 0 0

友情鏈接更多精彩內(nèi)容