recherche

Maison  >  Questions et réponses  >  le corps du texte

javascript - La méthode _extend est-elle utilisée pour parcourir les propriétés d'un objet? Comment comprendre les deux paramètres?

Quelqu'un peut-il expliquer :
Pourquoi _extend apparaît deux fois ? Que signifient-ils ? Cela signifie-t-il que la méthode par défaut est appelée ? ?
La première fois, c'est Base.prototype._extend.
Surtout la deuxième fois, que représentent la destination et la source ?

 _extend = function self(destination, source) {
     ......
 }

Voici la partie du code qui m'a dérouté :

define(function(){
var Base = function(){};
Base.prototype._extend = function(dest, src){
    var _complete,
    _extend,
    _isObject;
    _isObject = function(o){
        return (Object.prototype.toString.call(o) === '[object Object]' || Object.prototype.toString.call(o) === '[object Array]');
    },
    _extend = function self(destination, source) {
        var property;
        for (property in destination) {
            if (destination.hasOwnProperty(property)) {
                if (_isObject(destination[property]) && _isObject(source[property])) {
                    self(destination[property], source[property]);
                };

                if (source.hasOwnProperty(property)) {
                    continue;
                } else {
                    source[property] = destination[property];
                }
            }
        }
    }
    //省略部分代码...
    }})
世界只因有你世界只因有你2807 Il y a quelques jours520

répondre à tous(1)je répondrai

  • 怪我咯

    怪我咯2017-05-18 11:03:02

    _extend Le premier est la déclaration de variable et le second est l'affectation de variable.

    La fonction consiste à parcourir la variable de destination et à copier ses attributs internes vers la source. Si l'attribut existe déjà sur la source, il ne sera pas copié.

    répondre
    0
  • Annulerrépondre