<script>
<!--第一種寫法,我更喜歡第一種寫法直觀一些-->
function Person(name){
this.name = name || '默認名字喬丹';
}
var person = new Person('詹姆斯01');//this-->person
console.log(person.name,'看啥名字')//詹姆斯01,如果不傳遞參數或者傳遞的參數為假(比如'',null)---就是默認的喬丹
<!--第2種寫法-->
function Person1(name){
console.log(arguments,'我是arguments')
this.name = arguments[0] ? arguments[0] : '默認的名字02'
}
console.log(new Person1(''));
// 區別就是里面一個用|| 一個用三元,這里又可以了解一個只是點了 arguments
//第三種方法,這種方法適合用於參數較多的情況,使用了Jquery的擴展:這個我就不寫了 很少用到jq了
</script>
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Functions/arguments 鏈接Arguments的arguments
是一個對應於傳遞給函數的參數的類數組對象。arguments
對象是所有(非箭頭)函數中都可用的局部變量。你可以使用arguments
對象在函數中引用函數的參數。arguments
對象不是一個Array
。它類似於Array
,但除了length屬性和索引元素之外沒有任何Array
屬性
但是它可以被轉換為一個真正的Array
:
您還可以使用Array.from()
方法或擴展運算符將參數轉換為真實數組:
Array.from專程數組
console.log(Array.from(arguments),'我是arguments對象,專程數組')
console.log([...arguments],'我是arguments對象,專程數組')
總結一下 arguments的三點用法:
@1 一、實現重載(類似循環)
二、同數組下標訪問實參(這個比較常規)
三、屬性callee指向自己(沒怎么用過或者見過)
callee就是它的方法,這個方法用的不多,很容易被我們忽略,它指向的是正在被執行的Function對象,最常用的例子就是用來做遞歸了。