亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

javascript里面有關函數以及自定義對象的問題?(問題在函數里)謝謝了!

javascript里面有關函數以及自定義對象的問題?(問題在函數里)謝謝了!

ken0510 2016-10-14 15:48:51
function makePerson(first, last) { ?// ?聲明makePerson 這個函數的時候 first ?last 是函數的參數? ? return {? ? ? ? first: first,? ? ? ? last: last, // ?那么 在函數里面,first:first 的意思代表什么 ?為什么不是用var 聲明的變量 ?兩個first分別代表什么 哪個對應里 之前的參數first????? ? ? ? fullName: function() {? ? ? ? ? ? return this.first + ' ' + this.last;? ? ? ? },? ? ? ? fullNameReversed: function() {? ? ? ? ? ? return this.last + ', ' + this.first;? ? ? ? }? ? }}s = makePerson("Simon", "Willison");s.fullName();?s.fullNameReversed();?
查看完整描述

3 回答

已采納
?
qq_沖哥_0

TA貢獻40條經驗 獲得超30個贊

調用makePerson函數,返回的是一個對象,就是

s =?

?{

??? ? ? first: first,

? ? ? ? last: last, // 第一個first 代表屬性,第二個first 代表傳進來的參數,動態添加屬性值。

? ? ? ? fullName: function() {

? ? ? ? ? ? return this.first + ' ' + this.last;

? ? ? ? },

? ? ? ? fullNameReversed: function() {

? ? ? ? ? ? return this.last + ', ' + this.first;

? ? ? ? }

? ? }}

這么看,s 就相當于,我們平時聲明的對象字面量,first ?和 last 就相當于增加的屬性,只不過這里的屬性值是通過參數傳進來的。 效果就是下面這樣。

var s = {

????first: "Simon",

????last :"Willison"

}

查看完整回答
1 反對 回復 2016-10-14
?
_bug終結者_

TA貢獻89條經驗 獲得超16個贊

你這方法套方法,看的亂的

查看完整回答
反對 回復 2016-10-14
?
一瞬兒光

TA貢獻178條經驗 獲得超70個贊

函數里面的變量也是需要用var來聲明的。但是你這個函數里面的first和last這兩個不是變量,是對象的屬性,對象屬性不需要聲明。var一個變量的時候就是表示在內存里開辟一個固定大小的空間來存儲變量。參數是按照名稱對應的,函數內部的first就是參數的first,last就是參數的last。

查看完整回答
反對 回復 2016-10-14
  • 3 回答
  • 0 關注
  • 1485 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號