Descripción general
El método de iSownProperty () se utiliza para determinar si un objeto contiene una propiedad especificada.
gramática
obj.hasownproperty (Prop)
parámetro
•apuntalar
• El nombre del atributo a detectar.
describir
Todos los objetos que heredan objeto. Prototipo se heredará de la cadena prototipo al método de HaswnProperty. Este método se puede usar para detectar si un objeto contiene una propiedad específica. A diferencia del operador In, este método ignorará las propiedades heredadas de la cadena prototipo.
Ejemplo
Ejemplo 1: use el método de HaswnProperty para determinar si un objeto contiene una propiedad específica
El siguiente ejemplo detecta si el objeto O contiene su propio accesorio de atributo:
La copia del código es la siguiente:
o = nuevo objeto (); O.prop = 'existe'; function changeo () {
o.newprop = o.prop;
eliminar o.prop;} o.hasownproperty ('prop');
// devolver verdadero
changeo ();
O.HasownProperty ('Prop');
// devolver falso
Ejemplo 2: La diferencia entre sus propios atributos y atributos heredados
El siguiente ejemplo demuestra la diferencia entre el método de HaswnProperty trata sus propias propiedades y propiedades heredadas:
La copia del código es la siguiente:
o = nuevo objeto (); o.prop = 'existe'; o.hasownproperty ('prop');
// devolver verdadero
O.HasownProperty ('ToString');
// devolver falso
O.HASOWNPROPERTY ('ASOWNPROPERTY');
// devolver falso
Ejemplo 3: iterar a través de todas las propiedades de un objeto
El siguiente ejemplo demuestra cómo ignorar las propiedades hereditarias al atravesar todas las propiedades de un objeto. Tenga en cuenta que el bucle for ... en el bucle solo atraviesará las propiedades enumerables, que generalmente es lo que queremos. También puede lograr requisitos similares directamente usando el método Object.getOWNPropertynames ().
La copia del código es la siguiente:
var buz = {
niebla: 'pila'};
para (nombre var en buz) {
if (buz.hasownproperty (nombre)) {
alerta ("Esto es niebla (" + nombre + ") seguro. Valor:" + Buz [nombre]);
}
demás {
alerta (nombre);
// tostring o algo más
}}
Ejemplo 4: el método de HaswnProperty puede bloquearse
Si un objeto tiene su propio método de AlownProperty, el método del mismo nombre en la cadena prototipo se sombreará:
La copia del código es la siguiente:
var foo = {
HasnownProperty: functer () {
devolver falso;
},
Bar: 'aquí se dragones'}; foo.hasownproperty ('bar');
// siempre devolver falso
// Si está preocupado por esto, puede usar directamente el método real de HaswnProperty en la cadena prototipo
({}). ASOWNProperty.call (foo, 'bar');
// verdadero
Objeto.prototype.hasownproperty.call (foo, 'bar');
// verdadero
Lo anterior es todo el contenido descrito en este artículo, espero que les guste.