3

私はこれを行いました(バージョン mootools-core-1.4.5.js を使用)

Object.prototype.walkRecursive = function(callable, bindable) {
var p, val, retVal, _bind;

_bind = (typeof bindable === 'object') ? bindable : this;
for (p in this) {
    if (this.hasOwnProperty(p)) {
        if (!(this[p] instanceof Object)) {
            if (typeof callable === 'function')
            {
                retVal = callable.call(_bind, p, this[p]);
                if (typeof retVal !== 'undefined')
                {
                    this[p] = retVal;
                }
            }
            else {
                throw "Podaj funkcje jako drugi argument";
            }
        } else if (this[p] instanceof Object) {
            this[p].walkRecursive(callable, bindable);
        }
    }
}
return this;
};

それで

    var navigationEl = new Element('div', {
        'class' : 'wcag-navigation'
    }).inject(this._element);

this._wcagButton.pausePlay HTML 要素が Chrome デベロッパー ツールでどのように見えるかを確認すると、次のようになりました。

奇妙な html 属性

Mootools のimplementを使用すると、同じことが起こります。

 Object.implement({walkRecursive :function(callable, bindable) {....}.protect()});

どうして?この問題に対処する方法を教えてください

使用例

var data = [
{
    id: 0, 
    name: 'Template 0', 
    subComponents: [
        {id: 1, name: 'Template 1', subItems:[
            {id: 2, name: 'Template 2', subComponents:[
                {id: 3, name: 'Template 3'}
            ], 
             subItems: [
                 {id: 4, name: 'Template 4',},
                 {id: '42'}
             ]
            }
        ]}
    ]}
];

var bindMe = {
  nothing:'special'
}

data.walkRecursive(function(key,value){
if(key === 'name')
{
    return value+' '+this.nothing;
}
},bindMe)
4

1 に答える 1