Наблюдайте за изменениями свойств объектов в JavaScript [дубликат]

я только использую их, когда они необходимы для различения, которые представляют поле в виде таблицы, прибывает от

select PartNumber, I.InventoryTypeId, InventoryTypeDescription
from dbo.Inventory I
    inner join dbo.InventoryType IT on IT.InventoryTypeId = I.InventoryTypeId

В примере выше обеих таблиц, имеют поле InventoryTypeId, но другие имена полей уникальны.

Всегда используют сокращение для таблицы как имя так, чтобы код имел больше смысла - спрашивают Ваши другие разработчики, если они называют свои локальные переменные A, B, C, и т.д.!

единственное исключение находится в редких случаях, где синтаксис SQL требует псевдонима таблицы, но на это не ссылаются, например,

select *
from (
    select field1, field2, sum(field3) as total
    from someothertable
) X

В вышеупомянутом, синтаксис SQL требует псевдонима таблицы для подвыбора, но на это не ссылаются нигде, таким образом, я становлюсь ленивым и использую X или что-то как этот.

37
задан Community 23 May 2017 в 12:02
поделиться

3 ответа

Я создал небольшой объект. недавно посмотрите на прокладку . Он работает в IE8, Safari, Chrome, Firefox, Opera и т. Д.

/*
* object.watch v0.0.1: Cross-browser object.watch
*
* By Elijah Grey, http://eligrey.com
*
* A shim that partially implements object.watch and object.unwatch
* in browsers that have accessor support.
*
* Public Domain.
* NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK.
*/

// object.watch
if (!Object.prototype.watch)
    Object.prototype.watch = function (prop, handler) {
        var oldval = this[prop], newval = oldval,
        getter = function () {
            return newval;
        },
        setter = function (val) {
            oldval = newval;
            return newval = handler.call(this, prop, oldval, val);
        };
        if (delete this[prop]) { // can't watch constants
            if (Object.defineProperty) // ECMAScript 5
                Object.defineProperty(this, prop, {
                    get: getter,
                    set: setter
                });
            else if (Object.prototype.__defineGetter__ && Object.prototype.__defineSetter__) { // legacy
                Object.prototype.__defineGetter__.call(this, prop, getter);
                Object.prototype.__defineSetter__.call(this, prop, setter);
            }
        }
    };

// object.unwatch
if (!Object.prototype.unwatch)
    Object.prototype.unwatch = function (prop) {
        var val = this[prop];
        delete this[prop]; // remove accessors
        this[prop] = val;
    };
67
ответ дан 27 November 2019 в 04:42
поделиться

К сожалению, это не переносимое решение. Насколько мне известно, в IE нет ничего подобного, хотя было бы здорово, если бы там было

2
ответ дан 27 November 2019 в 04:42
поделиться

Возможно, вы могли бы реализовать свою собственную систему уведомления, перезаписав методы и переменные. Я не считаю это настолько критичным, но я не знаю, что вы планируете делать с такой системой.

-4
ответ дан 27 November 2019 в 04:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: