Baseline Widely available
ÐеÑод toString()
возвÑаÑÐ°ÐµÑ ÑÑÑокÑ, пÑедÑÑавлÑÑÑÑÑ Ð¾Ð±ÑекÑ.
function Dog(name) {
this.name = name;
}
const dog1 = new Dog("Gabby");
Dog.prototype.toString = function dogToString() {
return `${this.name}`;
};
console.log(dog1.toString());
// Expected output: "Gabby"
СинÑакÑÐ¸Ñ ÐозвÑаÑаемое знаÑение
СÑÑока, пÑедÑÑавлÑÑÑÐ°Ñ Ð¾Ð±ÑекÑ.
ÐпиÑаниеÐаждÑй обÑÐµÐºÑ Ð¸Ð¼ÐµÐµÑ Ð¼ÐµÑод toString()
, авÑомаÑиÑеÑки вÑзÑваÑÑийÑÑ, когда обÑÐµÐºÑ Ð´Ð¾Ð»Ð¶ÐµÐ½ бÑÑÑ Ð¿ÑедÑÑавлен в виде ÑекÑÑового знаÑÐµÐ½Ð¸Ñ Ð¸Ð»Ð¸ когда обÑÐµÐºÑ ÑÑаÑÑвÑÐµÑ Ð² вÑÑажении, где ожидаеÑÑÑ ÑÑÑока. Ðо ÑмолÑаниÑ, меÑод toString()
наÑледÑеÑÑÑ ÐºÐ°Ð¶Ð´Ñм обÑекÑом, пÑоизоÑедÑим Ð¾Ñ Ð¾Ð±ÑекÑа Object
. ÐÑли ÑÑÐ¾Ñ Ð¼ÐµÑод не пеÑеопÑеделÑн в полÑзоваÑелÑÑком обÑекÑе, toString()
возвÑаÑÐ°ÐµÑ ÑÑÑÐ¾ÐºÑ Ð²Ð¸Ð´Ð° "[object Ñип]", где Ñип
â ÑÑо Ñип обÑекÑа. ÐÑо иллÑÑÑÑиÑÑÐµÑ ÑледÑÑÑий код:
var o = new Object();
o.toString(); // веÑнÑÑ [object Object]
ÐÑимеÑание: ÐаÑÐ¸Ð½Ð°Ñ Ñ JavaScript 1.8.5, меÑод toString()
, вÑзваннÑй на null
, возвÑаÑÐ°ÐµÑ ÑÑÑÐ¾ÐºÑ [object Null]
, а вÑзваннÑй Ð´Ð»Ñ undefined
, возвÑаÑÐ°ÐµÑ ÑÑÑÐ¾ÐºÑ [object Undefined]
, как опÑеделено в 5-м издании ECMAScript и поÑледÑÑÑиÑ
иÑпÑавлениÑÑ
. СмоÑÑиÑе пÑÐ¸Ð¼ÐµÑ Ð¸ÑполÑзование меÑода toString() Ð´Ð»Ñ Ð¾Ð¿ÑÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ñипа обÑекÑа.
toString
по ÑмолÑаниÑ
ÐÑ Ð¼Ð¾Ð¶ÐµÑе ÑоздаÑÑ ÑÑнкÑиÑ, коÑоÑÐ°Ñ Ð±ÑÐ´ÐµÑ Ð²ÑзÑваÑÑÑÑ Ð²Ð¼ÐµÑÑо меÑода toString()
по ÑмолÑаниÑ. ÐеÑод toString()
не пÑÐ¸Ð½Ð¸Ð¼Ð°ÐµÑ Ð°ÑгÑменÑов и должен возвÑаÑаÑÑ ÑÑÑокÑ. СоздаваемÑй вами меÑод toString()
Ð¼Ð¾Ð¶ÐµÑ Ð²Ð¾Ð·Ð²ÑаÑаÑÑ Ð»ÑбÑÑ ÑÑÑокÑ, какÑÑ Ð²Ñ Ð·Ð°Ñ
оÑиÑе, но он бÑÐ´ÐµÑ Ð½Ð°Ð¸Ð±Ð¾Ð»ÐµÐµ полезнÑм, еÑли бÑÐ´ÐµÑ Ð²Ð¾Ð·Ð²ÑаÑаÑÑ Ð¸Ð½ÑоÑмаÑÐ¸Ñ Ð¾Ð± обÑекÑе.
СледÑÑÑий код опÑеделÑÐµÑ Ð¾Ð±ÑÐµÐºÑ Dog
и ÑоздаÑÑ theDog
, обÑÐµÐºÑ Ñипа Dog
:
function Dog(name, breed, color, sex) {
this.name = name;
this.breed = breed;
this.color = color;
this.sex = sex;
}
theDog = new Dog("ÐолÑÑÑка", "лабÑадоÑ", "ÑоколаднÑй", "девоÑка");
ÐÑли Ð²Ñ Ð²ÑзовеÑе меÑод toString()
на ÑÑом полÑзоваÑелÑÑком обÑекÑе, он веÑнÑÑ Ð·Ð½Ð°Ñение по ÑмолÑаниÑ, ÑнаÑледованное Ð¾Ñ Object
:
theDog.toString(); // веÑнÑÑ [object Object]
СледÑÑÑий код ÑоздаÑÑ Ð¸ пÑиÑÐ²Ð°Ð¸Ð²Ð°ÐµÑ Ð¼ÐµÑод dogToString()
, пеÑеопÑеделÑÑÑий меÑод toString()
по ÑмолÑаниÑ. ÐÑа ÑÑнкÑÐ¸Ñ Ð³ÐµÐ½ÐµÑиÑÑÐµÑ ÑÑÑокÑ, ÑодеÑжаÑÑÑ ÐºÐ»Ð¸ÑкÑ, поÑодÑ, ÑÐ²ÐµÑ Ð¸ пол обÑекÑа, в ÑоÑме "ÑвойÑÑво = знаÑение;
".
Dog.prototype.toString = function dogToString() {
var ret =
"СобаÑка " +
this.name +
" - " +
this.sex +
", " +
this.color +
" " +
this.breed;
return ret;
};
или
Dog.prototype.toString = function dogToString() {
return `Dog ${this.name} is a ${this.sex} ${this.color} ${this.breed}`;
};
ÐоÑле обÑÑÐ²Ð»ÐµÐ½Ð¸Ñ ÑÑого меÑода, пÑи лÑбом иÑполÑзовании пеÑеменной theDog
в ÑÑÑоковом конÑекÑÑе, JavaScript бÑÐ´ÐµÑ Ð°Ð²ÑомаÑиÑеÑки вÑзÑваÑÑ ÑÑнкÑÐ¸Ñ dogToString()
, возвÑаÑаÑÑÑÑ ÑледÑÑÑÑÑ ÑÑÑокÑ:
СобаÑка ÐолÑÑÑка - девоÑка, ÑоколаднÑй лабÑадоÑÐÑимеÑ: иÑполÑзование меÑода
toString
Ð´Ð»Ñ Ð¾Ð¿ÑÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ñипа обÑекÑа
ÐеÑод toString()
можно иÑполÑзоваÑÑ Ñ Ð»ÑбÑм обÑекÑом Ð´Ð»Ñ Ð¿Ð¾Ð»ÑÑÐµÐ½Ð¸Ñ ÐµÐ³Ð¾ клаÑÑа. ÐÐ»Ñ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¼ÐµÑода Object.prototype.toString()
Ñ Ð»ÑбÑм обÑекÑом, вам необÑ
одимо вÑзваÑÑ Ð½Ð° нÑм ÑÑнкÑии Function.prototype.call()
или Function.prototype.apply()
, пеÑедав обÑекÑ, коÑоÑÑй Ð²Ñ Ñ
оÑиÑе иÑÑледоваÑÑ, пеÑвÑм паÑамеÑÑом thisArg
.
var toString = Object.prototype.toString;
toString.call(new Date()); // [object Date]
toString.call(new String()); // [object String]
toString.call(Math); // [object Math]
// ÐаÑÐ¸Ð½Ð°Ñ Ñ JavaScript 1.8.5
toString.call(undefined); // [object Undefined]
toString.call(null); // [object Null]
СпеÑиÑикаÑии СовмеÑÑимоÑÑÑ Ñ Ð±ÑаÑзеÑами СмоÑÑиÑе Ñакже
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4