JavaScript new 一個建構函式

來源:互聯網
上載者:User

標籤:

我們在使用JavaScript對象的時候,除了一些瀏覽器內建的單體對象可以直接使用外,都會new一個出來使用。

1、new

var obj = new Object();

此時的new關鍵字幹了最有用的一件事、繼承所有Object.prototype上的方法( 一切對象皆繼承於Object )

2、new過程中發生了什麼?

1)、建立一個對象

2)、將建構函式的範圍賦給新對象(因此this就指向了新對象(obj))

3)、執行建構函式中的代碼(為新的對象添加屬性)

4)、返回新對象

 

var arr = [1,2,3,4];arr.a = 12;arr.show = function(){    alert(this.a);}arr.show();
var obj = new Object();     obj.name = "ntsc";     obj.qq = "785537837";     obj.showName = function(){     alert("我的名字叫:"+ this.name);};obj.showQQ = function(){     alert("我的QQ號:"+ this.qq);建立};console.dir(Object);console.dir(obj);

 

function createPerson(name, QQ) { // 建構函式       // 建立一個空白對象(原料)     var obj = new Object();     // 加屬性和方法(加工)     obj.name = name;     obj.qq = QQ;     obj.showName = function () {         console.log("我的名字叫:" + this.name);     };     obj.showQQ = function () {         console.log("我的QQ號:" + this.qq);     };     // 對象返回(出廠)     return obj;}
var obj = createPerson("ntsc", "123456");

 

function CreatePerson(name, QQ) { // 在建構函式裡面增加屬性        this.name = name;        this.qq = QQ;}CreatePerson.prototype.showName = function () { // 在原型裡面增加方法(一樣的東西放入"原型"裡面)    console.log("我的名字叫:" + this.name);};CreatePerson.prototype.showQQ = function () {    console.log("我的QQ號:" + this.qq);};ar obj = new CreatePerson("ntsc", "123465")

 

function Obj(){    this.a = "123";    this.b = function(){        alert("b");        }}Obj.prototype.c = function(){    alert("c");}var obj = new Obj();

 

 物件導向:在不瞭解原理的情況下、使用其功能。只關注對象的功能、不去關注其內部細節(一種通用思想)

對象:是由"屬性" 和 "方法"構建的

  變數(自由的、不屬於任何事物) 和 屬性(屬於某一個特定對象)本質上是一個東西

  函數(自由的、不屬於任何事物) 和 方法(屬於某一個特定對象)本質上是一個東西

Object:一切對象他爹(很純很乾淨、一切對象皆繼承於他)

this:

  1、this是誰和函數在哪裡定義和哪裡執行沒有關係

  2、當前的方法屬於誰、this就是誰(看函數前面的點"."、有點的話前面是誰、this就是誰)、沒有電、this為window

  3、給函數綁定事件、對於的this就是當前被綁定事件的元素

  4、自執行函數、this永遠都是window

對象執行個體化:人類(對象) --- 小明(執行個體化) --- 具體到個體

註:如果建構函式不需要參數,可以省去括弧,即:new Obj() 和 new Obj是等同的。

JavaScript new 一個建構函式

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.