1. 程式人生 > >請問一下在js裡面下面在串程式碼,定時器為什麼,我沒有申明一個變數就可以 obj.timer=賦值呢?

請問一下在js裡面下面在串程式碼,定時器為什麼,我沒有申明一個變數就可以 obj.timer=賦值呢?

在JavaScript函式中啊,函式有形參和實引數,形參就是function Book( obj ){}小括號裡面的,表示是你在呼叫這個函式傳進去的值,你在外面呼叫的時候,傳的是什麼就是什麼!
var 是宣告一個變數,只要是宣告一個變數都需要使用到var,= 等於是賦值的過程,將右邊的表示式賦值給左邊的變數,可見變數是一個可變的量嘛!

追問

那為什麼上面的定時器,它不需要宣告一個空變數, 就直接obj.名字=賦值呢,而下面在個定時器為什麼它就需要先宣告一個var timer=null變數在賦值?請問一下在倆個的區別,為什麼在麼做呢?希望您指點一下謝謝!

追答

1

2

3

4

5

6

7

8

unction startMove(obj, iTarget){

    clearInterval(obj.timer);

    obj.timer=setInterval(function(){

        var iSpeed=(iTarget-obj.alpha)/8;

        

iSpeed=iSpeed>0?Math.ceil(iSpeed):Math.floor(iSpeed);   

        if(obj.alpha==iTarget){

            clearInterval(obj.timer)

        };

這個是你的原始碼,clearInterval(obj.timer),是一個清除定時器,obj.timer是一個自定義屬性了,意思就是給obj添加了一個功能,obj這個引數是需要從外部傳!

你下面那個是宣告一個變數,肯定會用到var,但是用不用到null就看自己的想法和思路了,

 

來源:https://zhidao.baidu.com/question/921705125806418259.html