[英]Constructor function with multiple parameters?
我看到的構造函數示例很多
function Person(first, last, age, eyecolor) {
this.firstName = first;
this.lastName = last;
this.age = age;
this.eyeColor = eyecolor;
this.nationality = "English";
}
但是,如果您想要許多參數,例如20+,該怎么辦? 這似乎是低效的。 聲明一個包含多個參數的構造函數的正確有效的方法是什么?
我的最終目標是創建具有許多用戶設置(slidesToShow,slidesToScroll,slideClass等)的圖像滑塊。 因此,我希望用戶能夠對其進行初始化並提供選項。 我現在擁有它的方式有點奇怪。 例:
function Slider(options) {
const slideClass = options.slideClass
}
然后像這樣初始化它:
const demoSlider = new Slider({
slideClass: 'image-slider'
})
但是我沒有像普通的構造函數那樣使用this關鍵字,但是它也不是對象文字。 所以我的代碼一定是錯誤的嗎? 剛從主要是jQuery切換為嘗試以正確的方式學習/編寫普通JS。
感謝您的任何幫助!
要么只是在this.options
下存儲一個對象:
function Slider(options) {
this.options = options;
}
或者,如果您想直接在this
下使用,則只需使用Object Assign:
function Slider(options) {
Object.assign(this, options);
console.log(this.name);
}
new Slider({ name: "test" });
我認為您最好將它們一一設置,因為它們可能具有默認值,例如:
this.height = (options.height)?options.height:100;
另外我認為您不太了解new
的含義。
您沒有使用this
,這意味着所有變量都在您的函數中,
也許在這種情況下,您只需要執行一次該函數即可啟動滑塊事件。
因此,您只需要調用Slider(options)
。
new Slider()
將創建一個可以重復使用的對象,
但是您甚至沒有分配給像var mySlider = new Slider()
這樣的var mySlider = new Slider()
...
在這種情況下,您應該考慮是否需要將函數設計為function
還是constructor
?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.