javascript - Wie sind die beiden Parameter zu verstehen, mit denen die _extend-Methode zum Durchlaufen von Objekteigenschaften verwendet wird?
世界只因有你
世界只因有你 2017-05-18 11:01:02
0
1
487

Kann jemand erklären:
Warum _extend zweimal erscheint? Was bedeuten sie? Bedeutet das, dass die Standardmethode aufgerufen wird? ?
Das erste Mal ist Base.prototype._extend.
Was stellen Ziel und Quelle besonders beim zweiten Mal dar?

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

Hier ist der Teil des Codes, der mich verwirrt hat:

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];
                }
            }
        }
    }
    //省略部分代码...
    }})
世界只因有你
世界只因有你

Antworte allen(1)
刘奇

_extend第一个是变量声明,第二个是变量赋值。

作用就是 遍历destination变量,并将它内部的属性复制到source上,如果source上已经存在该属性则不复制。

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage