課程
/前端開發
/JavaScript
/JavaScript深入淺出
傳多個怎么辦?
2016-03-18
源自:JavaScript深入淺出 4-4
正在回答
首先,set方法實在給屬性賦值的時候觸發的函數,他參數只能傳遞一個(好吧,我實現想不出怎么同時賦兩個值給一個屬性)。如果你嘗試傳遞多個,會報語法錯誤,如下:
var?Person?=?{ ????name:"Jobs", ????age:99, ????//定義一個change方法,可以改變Person的name和age屬性,并且輸出改變后的屬性值 ????set?change(name,age){ ????????this.name?=?name; ????????this.age=age; ????????console.log("The?Person's?name:"+this.name+",and?age:"+this.age+"."); ?????} ?}; ?//好吧,我實現想不出怎么同時賦兩個值給一個屬性; ?Person.change?=?"xioming",88; ?//執行結果如下: Uncaught?SyntaxError:?Setter?must?have?exactly?one?formal?parameter.(…)
ok。直接傳遞多個是不行的。那我們換個思路。把多個參數綁定到一個對象,然后把對象作為參數傳給set方法。具體如下:
var?Person?=?{ ????name:"Jobs", ????age:99, ????//定義一個change方法,可以改變Person的name和age屬性,并且輸出改變后的屬性值 ????set?change(o){ ????????this.name?=?o.name; ????????this.age=o.age; ????????console.log("The?Person's?name:"+this.name+",and?age:"+this.age+"."); ?????} ?}; ?Person.change?=?{name:"xiaoming",age:88}; ?//執行結果如下: ?The?Person's?name:xiaoming,and?age:88.
這樣就沒有問題了。根據這個,你甚至可以做到傳好幾個參數給set方法使用。
olaolaola 提問者
可以傳遞對象.
舉報
由淺入深學習JS語言特性,且解析JS常見誤區,從入門到掌握
3 回答object.create()方法的寫法咨詢,傳入的參數一定要是Detector.prototype而不能是Detector嗎?
1 回答set方法賦值不成功?
2 回答為什么foo上有set方法obj就無法使用set方法給自己設值呢
1 回答不太懂set方法,怎么結果不對?
1 回答reduce方法將數組所有項相加為什么傳參個0,是否多此一舉
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2016-03-18
首先,set方法實在給屬性賦值的時候觸發的函數,他參數只能傳遞一個(好吧,我實現想不出怎么同時賦兩個值給一個屬性)。如果你嘗試傳遞多個,會報語法錯誤,如下:
ok。直接傳遞多個是不行的。那我們換個思路。把多個參數綁定到一個對象,然后把對象作為參數傳給set方法。具體如下:
這樣就沒有問題了。根據這個,你甚至可以做到傳好幾個參數給set方法使用。
2016-03-18
可以傳遞對象.