Baseline Widely available
СводкаÐозвÑаÑÐ°ÐµÑ ÑÑÑÐ»ÐºÑ Ð½Ð° ÑÑнкÑÐ¸Ñ Object
, ÑоздавÑÑÑ Ð¿ÑоÑоÑип ÑкземплÑÑа. ÐбÑаÑиÑе внимание, ÑÑо знаÑение ÑÑого ÑвойÑÑва ÑвлÑеÑÑÑ ÑÑÑлкой на ÑÐ°Ð¼Ñ ÑÑнкÑиÑ, а не ÑÑÑокой, ÑодеÑжаÑей Ð¸Ð¼Ñ ÑÑнкÑии. ÐÐ»Ñ Ð¿ÑимиÑивнÑÑ
знаÑений, вÑоде 1
, true
или "test"
, знаÑение доÑÑÑпно ÑолÑко Ð´Ð»Ñ ÑÑениÑ.
ÐÑе обÑекÑÑ Ð½Ð°ÑледÑÑÑ ÑвойÑÑво constructor
из Ñвоего пÑоÑоÑипа:
var o = {};
o.constructor === Object; // true
var a = [];
a.constructor === Array; // true
var n = new Number(3);
n.constructor === Number; // true
ÐÑимеÑÑ ÐÑимеÑ: оÑобÑажение конÑÑÑÑкÑоÑа обÑекÑа
Ð ÑледÑÑÑем пÑимеÑе ÑоздаÑÑÑÑ Ð¿ÑоÑоÑип Tree
и обÑÐµÐºÑ ÑÑого Ñипа theTree
. ÐаÑем в пÑимеÑе оÑобÑажаеÑÑÑ ÑвойÑÑво constructor
обÑекÑа theTree
.
function Tree(name) {
this.name = name;
}
var theTree = new Tree("ÐÑаÑное деÑево");
console.log("theTree.constructor Ñавен " + theTree.constructor);
ÐÑвод пÑимеÑа бÑÐ´ÐµÑ ÑледÑÑÑим:
theTree.constructor Ñавен function Tree(name) {
this.name = name;
}
ÐÑимеÑ: изменение конÑÑÑÑкÑоÑа обÑекÑа
СледÑÑÑий пÑÐ¸Ð¼ÐµÑ Ð¿Ð¾ÐºÐ°Ð·ÑваеÑ, как измениÑÑ ÐºÐ¾Ð½ÑÑÑÑкÑÐ¾Ñ Ð·Ð½Ð°Ñений обÑиÑ
обÑекÑов. Ðе заÑÑагиваÑÑÑÑ ÑолÑко знаÑÐµÐ½Ð¸Ñ true
, 1
и "ÑеÑÑ"
, поÑколÑÐºÑ Ð¾Ð½Ð¸ имеÑÑ ÑоднÑе конÑÑÑÑкÑоÑÑ ÑолÑко Ð´Ð»Ñ ÑÑениÑ. ÐÑÐ¾Ñ Ð¿ÑÐ¸Ð¼ÐµÑ Ð¿Ð¾ÐºÐ°Ð·ÑваеÑ, ÑÑо полагаÑÑÑÑ Ð½Ð° ÑвойÑÑво constructor
обÑекÑа не вÑегда безопаÑно.
function Type() {}
var types = [
new Array(),
[],
new Boolean(),
true, // оÑÑанеÑÑÑ Ð½ÐµÐ¸Ð·Ð¼ÐµÐ½Ð½Ñм
new Date(),
new Error(),
new Function(),
function () {},
Math,
new Number(),
1, // оÑÑанеÑÑÑ Ð½ÐµÐ¸Ð·Ð¼ÐµÐ½Ð½Ñм
new Object(),
{},
new RegExp(),
/(?:)/,
new String(),
"ÑеÑÑ", // оÑÑанеÑÑÑ Ð½ÐµÐ¸Ð·Ð¼ÐµÐ½Ð½Ñм
];
for (var i = 0; i < types.length; i++) {
types[i].constructor = Type;
types[i] = [
types[i].constructor,
types[i] instanceof Type,
types[i].toString(),
];
}
console.log(types.join("\n"));
ÐÑвод пÑимеÑа бÑÐ´ÐµÑ ÑледÑÑÑим:
function Type() {},false,
function Type() {},false,
function Type() {},false,false
function Boolean() {
[native code]
},false,true
function Type() {},false,Mon Sep 01 2014 16:03:49 GMT+0600
function Type() {},false,Error
function Type() {},false,function anonymous() {
}
function Type() {},false,function () {}
function Type() {},false,[object Math]
function Type() {},false,0
function Number() {
[native code]
},false,1
function Type() {},false,[object Object]
function Type() {},false,[object Object]
function Type() {},false,/(?:)/
function Type() {},false,/(?:)/
function Type() {},false,
function String() {
[native code]
},false,ÑеÑÑ
СпеÑиÑикаÑии СовмеÑÑимоÑÑÑ Ñ Ð±ÑаÑзеÑами
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