Rumah  >  Soal Jawab  >  teks badan

javascript - Adakah kaedah _extend digunakan untuk melintasi sifat objek Bagaimana untuk memahami dua parameter?

Bolehkah sesiapa menjelaskan:
Mengapa _extend muncul dua kali Apakah maksud kaedah lalai? ?
Kali pertama ialah Base.prototype._extend.
Terutama kali kedua, apakah yang diwakili oleh destinasi dan sumber?

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

Berikut ialah bahagian kod yang mengelirukan saya:

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

membalas semua(1)saya akan balas

  • 怪我咯

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

    _extend Yang pertama ialah pengisytiharan berubah, dan yang kedua ialah penugasan berubah.

    Fungsinya adalah untuk melintasi pembolehubah destinasi dan menyalin atribut dalamannya ke sumber Jika atribut itu sudah wujud pada sumber, ia tidak akan disalin.

    balas
    0
  • Batalbalas