lib/kissy/5.0.0-alpha.3/build/base-debug.js
function () {
                var self = this, cs = [], i, c = self.constructor, attrs = self.getAttrs();
                while (c) {
                    cs.push(c);
                    c = c.superclass && c.superclass.constructor;
                }
                cs.reverse();    // from super class to sub class
                // from super class to sub class
                for (i = 0; i < cs.length; i++) {
                    var ATTRS = cs[i].ATTRS || {};
                    for (var attributeName in ATTRS) {
                        if (attributeName in attrs) {
                            var attributeValue, onSetMethod;
                            var onSetMethodName = ON_SET + ucfirst(attributeName);    // 存在方法，并且用户设置了初始值或者存在默认值，就同步状态
                            // 存在方法，并且用户设置了初始值或者存在默认值，就同步状态
                            if ((onSetMethod = self[onSetMethodName]) && // 用户如果设置了显式不同步，就不同步，
                                // 比如一些值从 html 中读取，不需要同步再次设置
                                attrs[attributeName].sync !== 0 && (attributeValue = self.get(attributeName)) !== undefined) {
                                onSetMethod.call(self, attributeValue);
                            }
                        }
                    }
                }
            }
function () {
                var self = this, cs = [], i, c = self.constructor, attrs = self.getAttrs();
                while (c) {
                    cs.push(c);
                    c = c.superclass && c.superclass.constructor;
                }
                cs.reverse();    // from super class to sub class
                // from super class to sub class
                for (i = 0; i < cs.length; i++) {
                    var ATTRS = cs[i].ATTRS || {};
                    for (var attributeName in ATTRS) {
                        if (attributeName in attrs) {
                            var attributeValue, onSetMethod;
                            var onSetMethodName = ON_SET + ucfirst(attributeName);    // 存在方法，并且用户设置了初始值或者存在默认值，就同步状态
                            // 存在方法，并且用户设置了初始值或者存在默认值，就同步状态
                            if ((onSetMethod = self[onSetMethodName]) && // 用户如果设置了显式不同步，就不同步，
                                // 比如一些值从 html 中读取，不需要同步再次设置
                                attrs[attributeName].sync !== 0 && (attributeValue = self.get(attributeName)) !== undefined) {
                                onSetMethod.call(self, attributeValue);
                            }
                        }
                    }
                }
            }
function ( ) { var self = this , cs = [ ] , i , c = self . constructor , attrs = self . getAttrs ( ) ; while ( c ) { cs . push ( c ) ; c = c . superclass && c . superclass . constructor ; } cs . reverse ( ) ; // from super class to sub class // from super class to sub class for ( i = 0 ; i < cs . length ; i ++ ) { var ATTRS = cs [ i ] . ATTRS || { } ; for ( var attributeName in ATTRS ) { if ( attributeName in attrs ) { var attributeValue , onSetMethod ; var onSetMethodName = ON_SET + ucfirst ( attributeName ) ; // 存在方法，并且用户设置了初始值或者存在默认值，就同步状态 // 存在方法，并且用户设置了初始值或者存在默认值，就同步状态 if ( ( onSetMethod = self [ onSetMethodName ] ) && // 用户如果设置了显式不同步，就不同步， // 比如一些值从 html 中读取，不需要同步再次设置 attrs [ attributeName ] . sync !== 0 && ( attributeValue = self . get ( attributeName ) ) !== undefined ) { onSetMethod . call ( self , attributeValue ) ; } } } } }
sync attribute change event
@protected
sync attribute change event