Baseline Widely available
СводкаÐеÑод hasOwnProperty()
возвÑаÑÐ°ÐµÑ Ð»Ð¾Ð³Ð¸ÑеÑкое знаÑение, ÑказÑваÑÑее, ÑодеÑÐ¶Ð¸Ñ Ð»Ð¸ обÑÐµÐºÑ Ñказанное ÑвойÑÑво.
prop
ÐÐ¼Ñ Ð¿ÑовеÑÑемого ÑвойÑÑва.
ÐаждÑй обÑекÑ, пÑоизоÑедÑий Ð¾Ñ Object
, наÑледÑÐµÑ Ð¼ÐµÑод hasOwnProperty
. ÐÑÐ¾Ñ Ð¼ÐµÑод Ð¼Ð¾Ð¶ÐµÑ Ð¸ÑполÑзоваÑÑÑÑ Ð´Ð»Ñ Ð¾Ð¿ÑÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ñого, ÑодеÑÐ¶Ð¸Ñ Ð»Ð¸ обÑÐµÐºÑ Ñказанное ÑвойÑÑво в каÑеÑÑве ÑобÑÑвенного ÑвойÑÑва обÑекÑа; в оÑлиÑие Ð¾Ñ Ð¾Ð¿ÐµÑаÑоÑа in
, ÑÑÐ¾Ñ Ð¼ÐµÑод не пÑовеÑÑÐµÑ ÑÑÑеÑÑвование ÑвойÑÑв в ÑепоÑке пÑоÑоÑипов обÑекÑа.
hasOwnProperty
Ð´Ð»Ñ Ð¿ÑовеÑки ÑÑÑеÑÑÐ²Ð¾Ð²Ð°Ð½Ð¸Ñ ÑвойÑÑва
Ð ÑледÑÑÑем пÑимеÑе опÑеделÑеÑÑÑ, ÑодеÑÐ¶Ð¸Ñ Ð»Ð¸ обÑÐµÐºÑ o
ÑвойÑÑво Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ prop
:
o = new Object();
o.prop = "ÑÑÑеÑÑвÑеÑ";
function changeO() {
o.newprop = o.prop;
delete o.prop;
}
o.hasOwnProperty("prop"); // веÑнÑÑ true
changeO();
o.hasOwnProperty("prop"); // веÑнÑÑ false
ÐÑимеÑ: ÑобÑÑвеннÑе и ÑнаÑледованнÑе ÑвойÑÑва
СледÑÑÑий пÑÐ¸Ð¼ÐµÑ Ð¿Ð¾ÐºÐ°Ð·ÑÐ²Ð°ÐµÑ ÑазниÑÑ Ð¼ÐµÐ¶Ð´Ñ ÑобÑÑвеннÑми ÑвойÑÑвами и ÑвойÑÑвами, ÑнаÑледованнÑми ÑеÑез ÑепоÑÐºÑ Ð¿ÑоÑоÑипов:
o = new Object();
o.prop = "ÑÑÑеÑÑвÑеÑ";
o.hasOwnProperty("prop"); // веÑнÑÑ true
o.hasOwnProperty("toString"); // веÑнÑÑ false
o.hasOwnProperty("hasOwnProperty"); // веÑнÑÑ false
ÐÑимеÑ: обÑ
од ÑвойÑÑв обÑекÑа
СледÑÑÑий пÑÐ¸Ð¼ÐµÑ Ð¿Ð¾ÐºÐ°Ð·ÑваеÑ, как иÑеÑиÑоваÑÑÑÑ Ð¿Ð¾ ÑвойÑÑвам обÑекÑа Ñ Ð¿ÑопÑÑком ÑнаÑледованнÑÑ
ÑвойÑÑв. ÐбÑаÑиÑе внимание, ÑÑо Ñикл for...in
Ñже пÑоÑ
Ð¾Ð´Ð¸Ñ ÑолÑко по пеÑеÑиÑлÑемÑм ÑлеменÑам, Ñак ÑÑо не надо на оÑновании оÑÑÑÑÑÑÐ²Ð¸Ñ Ð½Ðµ пеÑеÑиÑлÑемÑÑ
ÑвойÑÑв, показÑваемÑÑ
в Ñикле, ÑÑиÑаÑÑ, ÑÑо меÑод hasOwnProperty
Ñам огÑаниÑÐ¸Ð²Ð°ÐµÑ ÑвойÑÑва ÑолÑко пеÑеÑиÑлÑемÑми ÑлеменÑами (как ÑÑо Ð´ÐµÐ»Ð°ÐµÑ Ð¼ÐµÑод Object.getOwnPropertyNames()
).
var buz = {
fog: "stack",
};
for (var name in buz) {
if (buz.hasOwnProperty(name)) {
alert("ÑÑо ÑоÑно ÑÑман (" + name + "). ÐнаÑение: " + buz[name]);
} else {
alert(name); // toString или ÑÑо-Ñо еÑÑ
}
}
ÐÑимеÑ: hasOwnProperty
как ÑвойÑÑво
JavaScript не заÑиÑÐ°ÐµÑ Ð¸Ð¼Ñ ÑвойÑÑва hasOwnProperty
; Ñаким обÑазом, вполне Ð¼Ð¾Ð¶ÐµÑ ÑÑÑеÑÑвоваÑÑ Ð¾Ð±ÑÐµÐºÑ Ñ Ñаким ÑвойÑÑвом, поÑÑÐ¾Ð¼Ñ Ð´Ð»Ñ Ð¿Ð¾Ð»ÑÑÐµÐ½Ð¸Ñ Ð¿ÑавилÑного ÑезÑлÑÑаÑа нÑжно иÑполÑзоваÑÑ Ð²Ð½ÐµÑний меÑод hasOwnProperty
:
var foo = {
hasOwnProperty: function () {
return false;
},
bar: "ТÑÑ Ð´ÑаконÑ",
};
foo.hasOwnProperty("bar"); // вÑегда возвÑаÑÐ°ÐµÑ false
// ÐÑполÑзÑем меÑод hasOwnProperty дÑÑгого обÑекÑа и вÑзÑваем его Ñ Ð¿ÐµÑедаÑей foo в каÑеÑÑве this
({}).hasOwnProperty.call(foo, "bar"); // true
// Также Ð´Ð»Ñ ÑÑиÑ
Ñелей можно иÑполÑзоваÑÑ ÑвойÑÑво hasOwnProperty из пÑоÑоÑипа Object
Object.prototype.hasOwnProperty.call(foo, "bar"); // true
ÐбÑаÑиÑе внимание, ÑÑо в поÑледнем ÑлÑÑае новÑе обÑекÑÑ Ð½Ðµ ÑоздаÑÑÑÑ.
СпеÑиÑикаÑии СовмеÑÑимоÑÑÑ Ñ Ð±ÑаÑзеÑами СмоÑÑиÑе Ñакже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