[ Web Proxy ]
URL:
Viewing: https://developer.mozilla.org/ru/docs/Web/JavaScript/Guide/Working_with_objects [Back]  [Original]

- JavaScript | MDN

This page was translated from English by the community. Learn more and join the MDN Web Docs community.

View in English Always switch to English

JavaScript . . , , . , . , . , , , .

In this article

JavaScript, , . JavaScript , .

JavaScript , . , , . , , , , , .. , JavaScript , .

JavaScript , . , . JavaScript, , . . :

js
objectName.propertyName;

JavaScript, ( ) . . , myCar make, model, year :

js
var myCar = new Object();
myCar.make = "Ford";
myCar.model = "Mustang";
myCar.year = 1969;

undefined ( null).

js
myCar.color; // undefined

JavaScript ( . property accessors). , , . , , myCar :

js
myCar["make"] = "Ford";
myCar["model"] = "Mustang";
myCar["year"] = 1969;

JavaScript, , , . , , JavaScript (, ), . , ( ). :

js
var myObj = new Object(),
  str = "myString",
  rand = Math.random(),
  obj = new Object();

myObj.type = "Dot syntax";
myObj["date created"] = "String with space";
myObj[str] = "String value";
myObj[rand] = "Random Number";
myObj[obj] = "Object";
myObj[""] = "Even an empty string";

console.log(myObj);

, String, JavaScript String. , , obj myObj, JavaScript obj.toString () .

, , :

js
var propertyName = "make";
myCar[propertyName] = "Ford";

propertyName = "model";
myCar[propertyName] = "Mustang";

for...in , . , , :

js
function showProps(obj, objName) {
  var result = "";
  for (var i in obj) {
    if (obj.hasOwnProperty(i)) {
      result += objName + "." + i + " = " + obj[i] + "\n";
    }
  }
  return result;
}

showProps(myCar, "myCar"), :

js
myCar.make = Ford;
myCar.model = Mustang;
myCar.year = 1969;

ECMAScript 5, ( ):

ECMAScript 5 . :

js
function listAllProperties(o) {
  var objectToInspect;
  var result = [];

  for (
    objectToInspect = o;
    objectToInspect !== null;
    objectToInspect = Object.getPrototypeOf(objectToInspect)
  ) {
    result = result.concat(Object.getOwnPropertyNames(objectToInspect));
  }

  return result;
}

(hidden) ( , , , ). , .

JavaScript . . JavaScript 1.2, . - new.

- , . , , . :

js
var obj = {
  property_1: value_1, // property_# may be an identifier...
  2: value_2, // or a number...
  // ...,
  "property n": value_n,
}; // or a string

obj , property_i (, ), value_i , property_i. obj ; , . ( , , , , .)

, JavaScript , , , . , , , .

x, cond .

js
if (cond) var x = { hi: "there" };

myHonda . , engine .

js
var myHonda = {
  color: "red",
  wheels: 4,
  engine: {
    cylinders: 4,
    size: 2.2,
  },
};

. array literals.

JavaScript 1.1 . - , . Using a constructor function.

:

  1. , -. , , .
  2. new.

, , , . , . , car, , make, model, year. , :

js
function Car(make, model, year) {
  this.make = make;
  this.model = model;
  this.year = year;
}

, this ( ) .

, mycar, :

js
var mycar = new Car("Eagle", "Talon TSi", 1993);

Car mycar . mycar.make "Eagle", mycar.year 1993, .

car, , new. :

js
var kenscar = new Car("Nissan", "300ZX", 1992);
var vpgscar = new Car("Mazda", "Miata", 1990);

, . , Person :

js
function Person(name, age, sex) {
  this.name = name;
  this.age = age;
  this.sex = sex;
}

Person :

js
var rand = new Person("Rand McKinnon", 33, "M");
var ken = new Person("Ken Jones", 39, "M");

, car owner, person :

js
function Car(make, model, year, owner) {
  this.make = make;
  this.model = model;
  this.year = year;
  this.owner = owner;
}

, , :

js
var car1 = new Car("Eagle", "Talon TSi", 1993, rand);
var car2 = new Car("Nissan", "300ZX", 1992, ken);

, , , , rand ken . , car2, :

js
car2.owner.name;

, . ,

js
car1.color = "black";

color car1, "black." , . , car.

Object.create

Object.create. , .

js
//      Animal
var Animal = {
  type: "Invertebrates", //  type  
  displayType: function () {
    //     Animal
    console.log(this.type);
  },
};

//   Animal
var animal1 = Object.create(Animal);
animal1.displayType(); // :Invertebrates

//   Animal    type = Fishes
var fish = Object.create(Animal);
fish.type = "Fishes";
fish.displayType(); // :Fishes

JavaScript . , , prototype .

JavaScript 1.0 , . JavaScript 1.1 , , , , .

( Car ) (, myCar.color = "red"). , myCar[5] = "25 mpg", myCar[5].

, HTML, forms. ( HTML ), ( ). , html- <FORM> NAME "myForm", : document.forms[1] document.forms["myForm"] document.myForm.

prototype. prototype , , . , color car, color car1.

js
Car.prototype.color = null;
car1.color = "black";

prototype Function JavaScript .

, , , , . , , , . :

js
objectName.methodname = function_name;

var myObj = {
  myMethod: function (params) {
    // ...do something
  },
};

objectName , methodname , , function_name .

:

js
object.methodname(params);

, . , , car. ,

js
function displayCar() {
  var result = "A Beautiful " + this.year + " " + this.make + " " + this.model;
  pretty_print(result);
}

pretty_print . , this , .

car,

js
this.displayCar = displayCar;

. , car :

js
function Car(make, model, year, owner) {
  this.make = make;
  this.model = model;
  this.year = year;
  this.owner = owner;
  this.displayCar = displayCar;
}

displayCar :

js
car1.displayCar();
car2.displayCar();

this

JavaScript this, , . , validate, value, :

js
function validate(obj, lowval, hival) {
  if (obj.value < lowval || obj.value > hival) alert("Invalid Value!");
}

validate , onchange. this , :

html
<input type="text" name="age" size="3"  />

, this , .

this , form. myForm Text button1. , Text . onclick this.form , myForm.

html
<form name="myForm">
  <p>
    <label>Form name:<input type="text" name="text1" value="Beluga" /></label>
  </p>
  <p>
    <input
      name="button1"
      type="button"
      value="Show Form Name"
       />
  </p>
</form>

( . get - ) , . ( . set ) , . , . .

, :

js
var o = {
  a: 7,
  get b() {
    return this.a + 1;
  },
  set c(x) {
    this.a = x / 2;
  },
};

console.log(o.a); // 7
console.log(o.b); // 8
o.c = 50;
console.log(o.a); // 25

o :

  • o.a
  • o.b , o.a 1
  • o.c , o.a o.c

, , "[gs]et propertyName() { }" . , Object.defineProperty ( Object.prototype.__defineGetter__).

, Date year, Date. Date - getFullYear setFullYear .

year:

js
var d = Date.prototype;
Object.defineProperty(d, "year", {
  get: function () {
    return this.getFullYear();
  },
  set: function (y) {
    this.setFullYear(y);
  },
});

year :

js
var now = new Date();
console.log(now.year); // 2000
now.year = 2001; // 987617605170
console.log(now);
// Wed Apr 18 11:13:25 GMT-0700 (Pacific Daylight Time) 2001

, :

  • ,
  • , .

, , get set. , , ( ). :

js
var o = {
  a: 7,
  get b() {
    return this.a + 1;
  },
  set c(x) {
    this.a = x / 2;
  },
};

, , Object.defineProperties. - , . - , , - . , :

js
var o = { a: 0 };

Object.defineProperties(o, {
  b: {
    get: function () {
      return this.a + 1;
    },
  },
  c: {
    set: function (x) {
      this.a = x / 2;
    },
  },
});

o.c = 10; //  ,   10 / 2 (5)  'a'
console.log(o.b); //  ,   a + 1 ( 6)

, , . , , , , . . , , , , . JavaScript .

delete. .

js
//Creates a new object, myobj, with two properties, a and b.
var myobj = new Object();
myobj.a = 5;
myobj.b = 12;

//Removes the a property, leaving myobj with only the b property.
delete myobj.a;

delete , var :

js
g = 17;
delete g;

[delete](Expressions_and_operators#delete) .

JavaScript . , . true.

js
//         
var fruit = { name: "apple" };
var fruitbear = { name: "apple" };

fruit == fruitbear; //  false
fruit === fruitbear; //  false
js
//       
var fruit = { name: "apple" };
var fruitbear = fruit; //   fruitbear    fruit

//  fruitbear  fruit       
fruit == fruitbear; //  true
fruit === fruitbear; //  true
js
fruit.name = "grape";
console.log(fruitbear); //  { name: "grape" }  { name: "apple" }

.


Web Proxy Viewer  |  New URL  |  Original Page