జావాస్క్రిప్ట్ ఆబ్జెక్ట్ కన్స్ట్రక్టర్

ఇన్స్టాన్స్

function Person(first, last, age, eye) {
    this.firstName = first;
    this.lastName = last;
    this.age = age;
    this.eyeColor = eye;
}

亲自试一试

కన్స్ట్రక్టర్ ఫంక్షన్లను పెద్ద అక్షరాలతో ప్రారంభించడం ఒక మంచి అలవాటు.

ఆబ్జెక్ట్ టైప్ (బ్లూప్ రైన్) (క్లాస్)

మునుపటి చాప్టర్ యొక్క ఉదాహరణలు పరిమితం. వాటివల్ల ఏక ఆబ్జెక్ట్ మాత్రమే సృష్టించబడుతాయి.

మనం కొన్నిసార్లు అదే “రకం” యొక్క అనేక ఆబ్జెక్ట్లను సృష్టించడానికి అవసరం ఉంటుంది దానిబ్లూప్ రైన్

ఒక “ఆబ్జెక్ట్ టైప్” ని సృష్టించడానికి ఒక మార్గం ఇది ఉపయోగించడం.ఆబ్జెక్ట్ కన్స్ట్రక్టర్ ఫంక్షన్

పైన ఉన్న ఉదాహరణలోఫంక్షన్ Person() అది ఆబ్జెక్ట్ కన్స్ట్రక్టర్ ఫంక్షన్.

ద్వారా new కీవర్డ్ ద్వారా కన్స్ట్రక్టర్ ఫంక్షన్ కాల్ చేయడం ద్వారా అదే రకమైన ఆబ్జెక్ట్లను సృష్టించవచ్చు:

var myFather = new Person("Bill", "Gates", 62, "blue");
var myMother = new Person("Steve", "Jobs", 56, "green");

亲自试一试

this కీవర్డ్

జావాస్క్రిప్ట్ లో అని పిలుస్తారు this విషయాలు కోడ్ యొక్క “యజమాని”.

this యొక్క విలువ, ఆబ్జెక్ట్ లో ఉపయోగించబడినప్పుడు, ఆ ఆబ్జెక్ట్ స్వయం.

కన్స్ట్రక్టర్ ఫంక్షన్ లోthis ఇది విలువ లేదు. ఇది కొత్త ఆబ్జెక్ట్ ప్రత్యామ్నాయం. ఒక కొత్త ఆబ్జెక్ట్ సృష్టించబడినప్పుడు, this యొక్క విలువ ఆ కొత్త ఆబ్జెక్ట్ అవుతుంది.

దయచేసి గమనించండి. this ఇది వేరీ కాదు. ఇది ఒక కీలక పదం. ఈథిస్ విలువను మార్చలేరు.

ఆబ్జెక్ట్కు అట్రిబ్యూట్ జోడించడం

ఒక ప్రస్తుత ఆబ్జెక్ట్కు అట్రిబ్యూట్ జోడించడం చాలా సులభం:

ఇన్స్టాన్స్

myFather.nationality = "English";

亲自试一试

కొత్త అట్రిబ్యూట్ మైఫాదర్కు జోడించబడింది. మైమదర్కు లేదా మరొక పర్సన్ ఆబ్జెక్ట్ కాదు.

ఆబ్జెక్ట్కు కార్యకలాపాన్ని జోడించడం

ఒక ప్రస్తుత ఆబ్జెక్ట్కు కొత్త కార్యకలాపాన్ని జోడించడం చాలా సులభం:

ఇన్స్టాన్స్

myFather.name = function () {
    return this.firstName + " " + this.lastName;
};

亲自试一试

కొత్త కార్యకలాపం మైఫాదర్కు జోడించబడింది. మైమదర్కు లేదా మరొక పర్సన్ ఆబ్జెక్ట్ కాదు.

నిర్మాణ ఫంక్షన్కు అట్రిబ్యూట్ జోడించడం

ఒక ప్రస్తుత ఆబ్జెక్ట్కు అట్రిబ్యూట్ జోడించడానికి వివిధంగా, ఆబ్జెక్ట్ నిర్మాణ ఫంక్షన్కు అట్రిబ్యూట్ జోడించలేరు:

ఇన్స్టాన్స్

Person.nationality = "English";

亲自试一试

నిర్మాణ ఫంక్షన్కు ఒక కొత్త అట్రిబ్యూట్ జోడించడానికి, మీరు ఫంక్షన్కు జోడించాలి:

ఇన్స్టాన్స్

function Person(first, last, age, eyecolor) {
    this.firstName = first;
    this.lastName = last;
    this.age = age;
    this.eyeColor = eyecolor;
    this.nationality = "English";
}

亲自试一试

ఇలా ఆబ్జెక్ట్ అట్రిబ్యూట్లు డిఫాల్ట్ విలువలను కలిగివుండవచ్చు.

నిర్మాణ ఫంక్షన్కు కార్యకలాపాన్ని జోడించడం

మీ నిర్మాణ ఫంక్షన్ కూడా కార్యకలాపాలను నిర్వచించవచ్చు:

ఇన్స్టాన్స్

function Person(first, last, age, eyecolor) {
    this.firstName = first;
    this.lastName = last;
    this.age = age;
    this.eyeColor = eyecolor;
    this.name = function() {return this.firstName + " " + this.lastName;};
}

亲自试一试

ఒక ప్రస్తుత ఆబ్జెక్ట్కు కొత్త కార్యకలాపాన్ని జోడించడానికి వివిధంగా, ఆబ్జెక్ట్ నిర్మాణ ఫంక్షన్కు కొత్త కార్యకలాపాన్ని జోడించలేరు.

నిర్మాణ ఫంక్షన్ లోపల ఒక కార్యకలాపాన్ని ఒక ఆబ్జెక్ట్కు జోడించాలి:

ఇన్స్టాన్స్

function Person(firstName, lastName, age, eyeColor) {
    this.firstName = firstName;  
    this.lastName = lastName;
    this.age = age;
    this.eyeColor = eyeColor;
    this.changeName = function (name) {
        this.lastName = name;
    };
}

changeName() ఫంక్షన్ పర్సన్ యొక్క lastName అట్రిబ్యూట్ని చేయిస్తుంది。

ఇప్పుడు మీరు ప్రయత్నించవచ్చు:

myMother.changeName("Jobs");

亲自试一试

ద్వారా ఉపయోగించండి myMother ప్రత్యామ్నాయంగా ఉపయోగించండి thisజావాస్క్రిప్ట్ ఇప్పుడు కొన్ని person ను నిర్వహిస్తుంది.

ఇన్స్టాన్స్ బిల్డర్స్

జావాస్క్రిప్ట్ ప్రాథమిక ఆబ్జెక్ట్లకు కన్స్ట్రక్టర్స్ అందిస్తుంది:

ఇన్స్టాన్స్

var x1 = new Object();    // ఒక కొత్త Object ఆబ్జెక్ట్
var x2 = new String();    // ఒక కొత్త String ఆబ్జెక్ట్
var x3 = new Number();    // ఒక కొత్త Number ఆబ్జెక్ట్
var x4 = new Boolean();   // ఒక కొత్త Boolean ఆబ్జెక్ట్
var x5 = new Array();     // ఒక కొత్త Array ఆబ్జెక్ట్
var x6 = new RegExp();    // ఒక కొత్త RegExp ఆబ్జెక్ట్
var x7 = new Function();  // ఒక కొత్త Function ఆబ్జెక్ట్
var x8 = new Date();      // ఒక కొత్త Date ఆబ్జెక్ట్

亲自试一试

Math() ఆబ్జెక్ట్లు ఈ జాబితాలో లేవు. మ్యాథ్ ఒక గ్లోబల్ ఆబ్జెక్ట్ ఉంది.new మ్యాథ్ పైన కీవర్డ్స్ ఉపయోగించబడలేదు.

మీరు తెలుసుకున్నారా?

మీరు తెలుసుకున్నారా? జావాస్క్రిప్ట్ ప్రాథమిక డాటా రకాలు స్ట్రింగ్, నంబర్, బౌల్ ప్రాథమిక ఆబ్జెక్ట్ లను అందిస్తుంది. కానీ క్లిష్టమైన ఆబ్జెక్ట్లను సృష్టించడానికి ఎటువంటి కారణం లేదు! ప్రాథమిక విలువలు చాలా వేగంగా ఉన్నాయి!

ఆబ్జెక్ట్ లిటెరల్ ఉపయోగించండి దయచేసి {} ప్రత్యామ్నాయంగా ఉపయోగించండి new Object()

స్ట్రింగ్ లిటెరల్ ఉపయోగించండి దయచేసి "" ప్రత్యామ్నాయంగా ఉపయోగించండి new String()

నంబర్ లిటెరల్ ప్రత్యామ్నాయంగా ఉపయోగించండి Number()

బౌల్ లిటెరల్ ప్రత్యామ్నాయంగా ఉపయోగించండి new Boolean()

అర్రే లిటెరల్ ఉపయోగించండి దయచేసి [] ప్రత్యామ్నాయంగా ఉపయోగించండి new Array()

పేటర్న్ లిటెరల్ ప్రత్యామ్నాయంగా ఉపయోగించండి దయచేసి new RexExp()

ఫంక్షన్ ఎక్స్ప్రెషన్ ఉపయోగించండి దయచేసి () {} ప్రత్యామ్నాయంగా ఉపయోగించండి new Function()

ఇన్స్టాన్స్

var x1 = {};            // 新对象
var x2 = "";            // 新的原始字符串
var x3 = 0;             // 新的原始数值
var x4 = false;         // 新的原始逻辑值
var x5 = [];            // 新的数组对象
var x6 = /()/           // 新的正则表达式对象
var x7 = function(){};  // 新的函数对象

亲自试一试

字符串对象

通常,字符串被创建为原始值:var firstName = "Bill"

కానీ కూడా ఉపయోగించవచ్చు new 关键词创建字符串对象:var firstName = new String("Bill")

ఈ పేజీలో ఉపయోగించండి JS 字符串这一章中学习为何不应该把字符串创建为对象。

数字对象

通常,数值被创建为原始值:var x = 456

కానీ కూడా ఉపయోగించవచ్చు new 关键词创建数字对象:var x = new Number(456)

ఈ పేజీలో ఉపయోగించండి జెఎస్ నమ్ములుఈ చాప్టర్ లో తెలుసుకోండి ఎందుకు నమ్ములు ఆబ్జెక్ట్స్ గా సృష్టించకూడదు.

బౌల్ ఆబ్జెక్ట్

సాధారణంగా, లాజికల్ విలువలను ఆర్టిఫాక్ట్ విలువల గా సృష్టించబడతాయి: var x = false

కానీ కూడా ఉపయోగించవచ్చు new లాజికల్ ఆబ్జెక్ట్స్ సృష్టించడానికి కీలకం: var x = new Boolean(false)

ఈ పేజీలో ఉపయోగించండి జెఎస్ లాజికల్ఈ చాప్టర్ లో తెలుసుకోండి ఎందుకు లాజికల్ విలువలను ఆబ్జెక్ట్స్ గా సృష్టించకూడదు.