最近2018中文字幕在日韩欧美国产成人片_国产日韩精品一区二区在线_在线观看成年美女黄网色视频_国产精品一区三区五区_国产精彩刺激乱对白_看黄色黄大色黄片免费_人人超碰自拍cao_国产高清av在线_亚洲精品电影av_日韩美女尤物视频网站

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
JavaScript構(gòu)造器怎么創(chuàng)建

本文小編為大家詳細(xì)介紹“JavaScript構(gòu)造器怎么創(chuàng)建”,內(nèi)容詳細(xì),步驟清晰,細(xì)節(jié)處理妥當(dāng),希望這篇“JavaScript構(gòu)造器怎么創(chuàng)建”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學(xué)習(xí)新知識吧。

曲陽網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián),曲陽網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為曲陽近1000家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站建設(shè)要多少錢,請找那個(gè)售后服務(wù)好的曲陽做網(wǎng)站的公司定做!

在JavaScript中,構(gòu)造器是一個(gè)當(dāng)新建對象的內(nèi)存被分配后,用來初始化該對象的一個(gè)特殊函數(shù),對象構(gòu)造器是被用來創(chuàng)建特殊類型的對象,在對象初次被創(chuàng)建時(shí),通過接收參數(shù),用來對成員的屬性和方法進(jìn)行賦值。

本教程操作環(huán)境:windows10系統(tǒng)、javascript1.8.5版、Dell G3電腦。

JavaScript構(gòu)造器是什么

在面向?qū)ο缶幊讨校瑯?gòu)造器是一個(gè)當(dāng)新建對象的內(nèi)存被分配后,用來初始化該對象的一個(gè)特殊函數(shù)。在 JavaScript 中一切皆對象。 對象構(gòu)造器是被用來創(chuàng)建特殊類型的對象,首先它要準(zhǔn)備使用的對象,其次在對象初次被創(chuàng)建時(shí),通過接收參數(shù),用來對成員的屬性和方法進(jìn)行賦值。

對象創(chuàng)建

創(chuàng)建對象的三種基本方式:

var newObject = {};
// or
var newObject = Object.create( null );
// or
var newObject = new Object();

在 Object 構(gòu)造器為特定的值創(chuàng)建對象封裝,或者沒有傳遞值時(shí),它將創(chuàng)建一個(gè)空對象并返回它。

將一個(gè)鍵值對賦給一個(gè)對象的四種方式:

// ECMAScript 3 兼容形式
// 1. “點(diǎn)號”法
// 設(shè)置屬性
newObject.someKey = "Hello World";
// 獲取屬性
var key = newObject.someKey;
// 2. “方括號”法
// 設(shè)置屬性
newObject["someKey"] = "Hello World";
// 獲取屬性
var key = newObject["someKey"];
// ECMAScript 5 僅兼容性形式
// For more information see: http://kangax.github.com/es5-compat-table/
// 3. Object.defineProperty方式
// 設(shè)置屬性
Object.defineProperty( newObject, "someKey", {
    value: "for more control of the property's behavior",
    writable: true,
    enumerable: true,
    configurable: true
});
// 如果上面的方式你感到難以閱讀,可以簡短的寫成下面這樣:
var defineProp = function ( obj, key, value ){
    var config = {
        value
    }
  Object.defineProperty( obj, key, config );
};
// 為了使用它,我們要?jiǎng)?chuàng)建一個(gè)“person”對象
var person = Object.create( null );
// 用屬性構(gòu)造對象
defineProp( person, "car",  "Delorean" );
defineProp( person, "dateOfBirth", "1981" );
defineProp( person, "hasBeard", false );
// 還可以創(chuàng)建一個(gè)繼承于Person的賽車司機(jī)
var driver = Object.create( person );
// 設(shè)置司機(jī)的屬性
defineProp(driver, "topSpeed", "100mph");
// 獲取繼承的屬性 (1981)
console.log( driver.dateOfBirth );
// 獲取我們設(shè)置的屬性 (100mph)
console.log( driver.topSpeed );
// 4. Object.defineProperties方式
// 設(shè)置屬性
Object.defineProperties( newObject, {
  "someKey": { 
    value: "Hello World", 
    writable: true 
  },
  "anotherKey": { 
    value: "Foo bar", 
    writable: false 
  } 
});
// 3和4中的讀取屬行可用1和2中的任意一種

基礎(chǔ)構(gòu)造器

正如我們先前所看到的,JavaScript 不支持類的概念,但它有一種與對象一起工作的構(gòu)造器函數(shù)。使用 new 關(guān)鍵字來調(diào)用該函數(shù),我們可以告訴 JavaScript 把這個(gè)函數(shù)當(dāng)做一個(gè)構(gòu)造器來用,它可以用自己所定義的成員來初始化一個(gè)對象。

在這個(gè)構(gòu)造器內(nèi)部,關(guān)鍵字 this 引用到剛被創(chuàng)建的對象。回到對象創(chuàng)建,一個(gè)基本的構(gòu)造函數(shù)看起來像這樣:

function Car( model, year, miles ) {
  this.model = model;
  this.year = year;
  this.miles = miles;
  this.toString = function () {
    return this.model + " has done " + this.miles + " miles";
  };
}
// 使用:
// 我們可以實(shí)例化一個(gè)Car
var civic = new Car( "Honda Civic", 2009, 20000 );
var mondeo = new Car( "Ford Mondeo", 2010, 5000 );
// 打開瀏覽器控制臺查看這些對象toString()方法的輸出值
console.log( civic.toString() );
console.log( mondeo.toString() );

上述是個(gè)簡單版本的構(gòu)造器模式,但它有兩個(gè)問題:

難以繼承

每個(gè) Car 構(gòu)造函數(shù)創(chuàng)建的對象中,toString() 之類的函數(shù)都被重新定義

這不是非常好,理想的情況是所有 Car 類型的對象都應(yīng)該引用同一個(gè)函數(shù)

使用“原型( prototype )”的構(gòu)造器

在 JavaScript 中函數(shù)有一個(gè) prototype 的屬性。當(dāng)我們調(diào)用 JavaScript 的構(gòu)造器創(chuàng)建一個(gè)對象時(shí),構(gòu)造函數(shù) prototype 上的屬性對于所創(chuàng)建的對象來說都能被訪問和調(diào)用

function Car( model, year, miles ) {
  this.model = model;
  this.year = year;
  this.miles = miles;
}
// 注意這里我們使用 Object.prototype.newMethod 而不是 Object.prototype ,以避免我們重新定義原型對象
Car.prototype.toString = function () {
  return this.model + " has done " + this.miles + " miles";
};
// 使用:
var civic = new Car( "Honda Civic", 2009, 20000 );
var mondeo = new Car( "Ford Mondeo", 2010, 5000 );
console.log( civic.toString() );
console.log( mondeo.toString() );

通過上面代碼,單個(gè) toString() 實(shí)例被所有的 Car 對象所共享了。

讀到這里,這篇“JavaScript構(gòu)造器怎么創(chuàng)建”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識點(diǎn)還需要大家自己動(dòng)手實(shí)踐使用過才能領(lǐng)會,如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


當(dāng)前名稱:JavaScript構(gòu)造器怎么創(chuàng)建
文章網(wǎng)址:http://fisionsoft.com.cn/article/pjeedo.html