javascript - 請問_extend方法的作用是遍歷物件屬性嗎,2個參數怎麼理解?
世界只因有你
世界只因有你 2017-05-18 11:01:02
0
1
469

哪位大神可以解釋下:
_extend為什麼出現了2次,他們分別代表什麼意思,是預設呼叫方法的意思嗎? ?
第1次是Base.prototype._extend
尤其是第2次的,其中的destination和source代表的是啥?

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

下面是引起我困惑的程式碼部分:

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

全部回覆(1)
刘奇

_extend第一個是變數聲明,第二個是變數賦值。

作用就是 遍歷destination變量,並將它內部的屬性複製到source上,如果source上已經存在該屬性則不複製。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!