Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 19.03.2016, 09:08
Профессор
Отправить личное сообщение для DivMan Посмотреть профиль Найти все сообщения от DivMan
 
Регистрация: 08.03.2016
Сообщений: 429

Object.defineProperty
Почему не работает?

https://jsfiddle.net/jLdr97po/

writable: false означает, то, что нельзя менять значение у свойства, по этой логике значение не должно измениться, а в alert показаться старое.

Почему не работает второй alert? Он же вообще никак не связан с объектом?

Так тоже не работает

https://jsfiddle.net/jLdr97po/1/
Ответить с цитированием
  #2 (permalink)  
Старый 19.03.2016, 09:51
Аватар для destus
Профессор
Отправить личное сообщение для destus Посмотреть профиль Найти все сообщения от destus
 
Регистрация: 18.05.2011
Сообщений: 1,207

в strict mode присвоение "user.name=" вызовет ошибку

Последний раз редактировалось destus, 19.03.2016 в 10:03.
Ответить с цитированием
  #3 (permalink)  
Старый 19.03.2016, 10:08
Профессор
Отправить личное сообщение для DivMan Посмотреть профиль Найти все сообщения от DivMan
 
Регистрация: 08.03.2016
Сообщений: 429

Сообщение от destus Посмотреть сообщение
в strict mode присвоение "user.name=" вызовет ошибку
Почему не работает второй alert?
Ответить с цитированием
  #4 (permalink)  
Старый 19.03.2016, 10:19
Аватар для destus
Профессор
Отправить личное сообщение для destus Посмотреть профиль Найти все сообщения от destus
 
Регистрация: 18.05.2011
Сообщений: 1,207

исключение
"use strict";
try{
    var user = {
        name: "Вася"
    };

    Object.defineProperty(user, "name", {
        writable: false
    })

    user.name = "gggg";
}
catch (e) {
    alert(user.name);
    alert("fff");
}
Ответить с цитированием
  #5 (permalink)  
Старый 20.03.2016, 05:55
Профессор
Отправить личное сообщение для DivMan Посмотреть профиль Найти все сообщения от DivMan
 
Регистрация: 08.03.2016
Сообщений: 429

Я не понимаю этот код

set: function(value) {
      var split = value.split(' ');
      this.firstName = split[0];
      this.surname = split[1];
    }



Получается, то, что для переменной value присвоили значение массив?

Почему тогда для обычной переменной это сделать нельзя?

var value;
var aaa = value.split('')
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск