為什么我這樣寫,會(huì)出現(xiàn)原型上沒有定義的這個(gè)問題

按照老師的方法寫的,為什么我這個(gè)會(huì)出現(xiàn)這樣的問題;
var?ball1?=?document.querySelector('.ball1');
var?ball1?=?document.querySelector('.ball2');
var?ball1?=?document.querySelector('.ball3');
var?Promise?=?window.Promise;
//
//
//????function?animation(ball,?distance,cb)?{
//??????????setTimeout(function()?{
//??????????????var?marginleft?=?parseInt(ball.style.marginLeft,10);
//??????????????if?(marginleft?===?distance)?{
//??????????????????cb&cb()
//??????????????}?else?{
//??????????????????if?(marginleft?>?distance)?{
//??????????????????????marginleft--;
//??????????????????}?else?{
//??????????????????????marginleft++;
//??????????????????}
//??????????????????ball.style.marginleft?=?marginleft;
//??????????????????animation(ball,?distance,cb);
//??????????????}
//
//??????????},?13);
//??????};
//??????animation();
//??????
//??????animation(ball1,200,function(){
//??????????animation(ball2,300,function(){
//??????????????animation(ball3,400,function(){
//??????????????????animation(ball3,250,function(){
//??????????????????????animation(ball2,250,function(){
//??????????????????????????animation(ball1,250)
//??????????????????????})
//??????????????????})
//??????????????})
//??????????});
//??????});
//??????
????????
????????
????????
function?promiseAnimation(ball,?distance)?{
????return?new?Promise(function(resole,?reject)?{
????????function?animation(ball)?{
????????????setTimeout(function()?{
????????????????var?marginLeft?=?parseInt(ball.style.marginLeft,10);
????????????????if?(marginLeft?===?distance)?{
????????????????????resole();
????????????????}?else?{
????????????????????if?(marginLeft?>?distance)?{
????????????????????????marginLeft--;
????????????????????}?else?{
????????????????????????marginLeft++;
????????????????????}
????????????????????ball.style.marginLeft?=?marginLeft;
????????????????????animation();
????????????????}
????????????},?13);
????????};
????????animation();
????});
};
promiseAnimation(ball1,?100)
????.then(function()?{
????????return?promiseAnimation(ball2,?200)
????})
????.then(function()?{
????????return?promiseAnimation(ball3,?300)
????})
????.then(function()?{
????????return?promiseAnimation(ball3,?150)
????})
????.then(function()?{
????????return?promiseAnimation(ball2,?150)
????})
????.then(function()?{
????????return?promiseAnimation(ball1,?150)
????})
2016-04-15
Promise中的animation()函數(shù)在定義的時(shí)候加了ball這個(gè)參數(shù)。在調(diào)用的時(shí)候卻沒有傳參,函數(shù)內(nèi)的ball就是undefined。定義animation的時(shí)候去掉參數(shù)。讓函數(shù)內(nèi)animation的ball取promiseAnimation()中的參數(shù)ball。