mage_sales_model_quote::setcustomer方法,有這麼一行**
mage::helper('core')->copyfieldset('customer_account', 'to_quote', $customer, $this);
看下實現mage_core_helper_da
ta::copyfieldset
$fields = mage::getconfig()->getfieldset($fieldset, $root);if (!$fields)
$sourceisarray = is_array($source);
$targetisarray = is_array($target);
$result = false;
foreach ($fields as $code=>$node)
if ($sourceisarray) else
$targetcode = (string)$node->$aspect;
$targetcode = $targetcode == '*' ? $code : $targetcode;
if ($targetisarray) else
$result = true;
}
先從配置中讀取global/fieldsets/相應的節點,每個節點的格式為key為源物件中的屬性名,v為配置;以下為乙個例項11
1customer_prefix
customer_prefix
從源物件或陣列中拷貝,如果是陣列,則用key,物件則用相應的get方法,如tax_class_id,則方法為gettaxclassid
實現乙個深拷貝
第一種 可以使用簡單的方法jsonconst person const copyperson json.parse json.stringify person 修改person內name屬性 person.name che console.log person console.log copyper...
JS中淺拷貝和深拷貝的使用,深拷貝實現方法總結
1 淺拷貝 兩個物件經過拷貝後雖然具有相同的屬性,但是他們都指向同乙個記憶體空間。操作會引起引用,同一位址的變數一起改變。let a let b a b.x 2 console.log b console.log a 2 深拷貝 兩個物件除了拷貝了一樣的屬性,沒有任何其他關聯 指向不同的記憶體空間 ...
js中資料的深淺拷貝
前言 js中資料分為基本型別和引用型別,基本型別變數在使用時可以被直接訪問,不存在深淺拷貝一說 而引用型別,由於其值變數存放在堆中,棧中存放的是指向堆中值的位址,所有在使用引用型別變數時,使用的是棧中的引用位址。深淺拷貝 簡單來說就是把object型別的資料複製後進行修改,修改後的值對原值沒有影響為...