js高階第一天(原型)

2021-09-26 23:49:18 字數 4334 閱讀 6169

1.字面量的方式

var per1=,

readbook:function ()

};

2.呼叫系統的建構函式

var per2=new object();

per2.name="大蛇丸";

per2.age=30;

per2.***="男";

per2.eat=function () ;

per2.play=function () ;

3.自定義建構函式的方式

function person(name,age,***) ;

}var per=new person("雛田",18,"女");

console.log(per instanceof person);

function createobject(name,age) ;

return obj;

}function person(name,age) ;

}//建立物件---->例項化乙個物件,的同時對屬性進行初始化

/** 共同點:都是函式,都可以建立物件,都可以傳入引數

** 工廠模式:

* 函式名是小寫

* 有new,

* 有返回值

* new之後的物件是當前的物件

* 直接呼叫函式就可以建立物件

** 自定義建構函式:

* 函式名是大寫(首字母)

* 沒有new

* 沒有返回值

* this是當前的物件

* 通過new的方式來建立物件

1.例項物件是通過建構函式建立的--建立的過程叫做例項化

2.如何判斷物件是不是這個資料型別?

1)通過構造器的方式 例項物件.構造器==建構函式的名字

console.log(dog.constructor==animal);

2)物件 intanseof 建構函式名字

console.log(dog instanceof person);

盡可能的使用第二種方式來識別,為什麼?原型講完再說

* 原型?

* 例項物件中有__proto__這個屬性,叫原型,也是乙個物件,這個屬性是給瀏覽器使用,不是標準的屬性----->__proto__----->可以叫原型物件

* 建構函式中有prototype這個屬性,叫原型,也是乙個物件,這個屬性是給程式設計師使用,是標準的屬性------>prototype--->可以叫原型物件

** 例項物件的__proto__和建構函式中的prototype相等--->true

* 又因為例項物件是通過建構函式來建立的,建構函式中有原型物件prototype

* 例項物件的__proto__指向了建構函式的原型物件prototype

* * 原型---->__proto__或者是prototype,都是原型物件,

* 原型的作用:共享資料,節省記憶體空間

建構函式可以例項化物件

建構函式中有乙個屬性叫prototype,是建構函式的原型物件

建構函式的原型物件(prototype)中有乙個constructor構造器,這個構造器指向的就是自己所在的原型物件所在的建構函式

例項物件的原型物件(__proto__)指向的是該建構函式的原型物件

建構函式的原型物件(prototype)中的方法是可以被例項物件直接訪問的

//什麼樣子的資料是需要寫在原型中?

//需要共享的資料就可以寫原型中

//原型的作用之一:資料共享

//屬性需要共享,方法也需要共享

//不需要共享的資料寫在建構函式中,需要共享的資料寫在原型中

//建構函式

function student(name,age,***)

//所有學生的身高都是188,所有人的體重都是55

//所有學生都要每天寫500行**

//所有學生每天都要吃乙個10斤的西瓜

//原型物件

student.prototype.height="188";

student.prototype.weight="55kg";

student.prototype.study=function () ;

student.prototype.eat=function () ;

//例項化物件,並初始化

var stu=new student("晨光",57,"女");

console.dir(student);

console.dir(stu);

// stu.eat();

// stu.study();

function student(name, age, ***) 

//簡單的原型寫法

student.prototype = ,

eat: function ()

};var stu=new student("段飛",20,"男");

stu.eat();

stu.study();

console.dir(student);

console.dir(stu);

function animal(name,age) 

//原型中新增方法

animal.prototype.eat=function () ;

animal.prototype.play=function () ;

animal.prototype.sleep=function () ;

var dog=new animal("小蘇",20);

dog.eat();

function person(age,***) ;

}person.prototype.***="女";

person.prototype.eat=function () ;

var per=new person(20,"男");

console.log(per.***);//男

per.eat();

console.dir(per);

/** 例項物件使用的屬性或者方法,先在例項中查詢,找到了則直接使用,找不到則,去例項物件的__proto__指向的原型物件prototype中找,找到了則使用,找不到則報錯**

* */

//為內建物件新增原型方法

// var arr=new array(10,20,30,40,50);

// arr.join("|");

// console.dir(arr);

////

// var str=new string("哦,嘜嘎的");

// str.indexof("哦");

// console.dir(str);

////

// var dt=new date();

// dt.getfullyear();

// console.dir(dt);

//例項中的方法如果沒有,去建立該例項物件的建構函式的原型物件中找

//我們能否為系統的物件的原型中新增方法,相當於在改變原始碼

//我希望字串中有乙個倒序字串的方法

string.prototype.myreverse=function ()

};var str="abcdefg";

str.myreverse();

//為array內建物件的原型物件中新增方法

array.prototype.mysort=function () )(window);

//例項化隨機數物件

var rm=new random();

//呼叫方法產生隨機數

console.log(rm.getrandom(0,5));

//全域性變數

js基礎第一天

js的介紹 js是什麼 js是一門指令碼語言 解釋性語言 動態型別語言 基於物件語言 編譯語言 需要把 翻譯成計算機所認知的二進位制語言,才能夠執行 指令碼語言 不需要編譯,直接執行 常見的指令碼語言 t sql,cmd js的作用 解決使用者和瀏覽器之間的互動問題 的寫法 宣告乙個物件 var o...

第一天 SSIS 高階研討

extract 抽取 transformation 轉換 loading 載入 理解ssis的控制流和資料流 控制流是整個工作流程 而資料流是控制流中的一部分 典型業務場景 動手實驗 簡單範例 使用dtswizard匯出資料,儲存ssis包,再次執行,檢視dtsx檔案 1.把伺服器中的乙個資料庫的 ...

js物件導向第一天

1 物件導向?物件導向是一種程式設計思想。類 具有相同特徵的一類事物,js中有很多內建類,我們也可以自己建立類 物件 通過類建立出物件,是具體的,js中有很多的物件,我們也可以自己去建立物件 2 類?js中提供很多類,如number string,boolean,object,math,date,通...