กำลังเขียน Google Apps Script สงสัยเรื่องการเรียกใช้ method ซ้อน method

รบกวนสอบถามครับ ตอนนี้กำลังเขียน code  Google Apps Script  แต่มาเจอการเรียกใช้ method แบบซ้อน method นี่ งงเลย

SpreadsheetApp.getActiveSpreadSheet().getActiveSheet().getRange("A1");

SpreadsheetApp เป็นคลาสครับ สามารถเรียกใช้ static method ชื่อ getActiveSpreadSheet() ได้โดยตรง แต่ประเด็นคือ ผมงงว่า ทำไมมันสามารถเรียกเมธอด getActiveSheet() ซ้อนกันเป็นชั้นๆแบบนั้นได้อีก แถมยังเรียก getRange() ด้วย คือมันขัดกับที่รู้ว่ามา มี object ของ class และ class เท่านั้นที่เรียก method ใช้ได้ในรูปแบบนี้  หรือว่ามันเขียนแบบนี้ได้???

class A >> obj ของคลาส A ชื่อ objA
objA.functionInClassA()
หรือไม่ก็เรียกผ่านคลาส A.functionInClassA()

เพราะถ้า class A มีสองเมธอด คือmethod1 and method2
ผมก็เรียกแบบนี้ได้อ่ะดิ?? >>> A.method2.method1 ???? ซึ่งมันไม่ใช่แล้ววว!!! อมยิ้ม20

ขอบคุณสำหรับคำอธิบายครับ

class reference ของ GAS ครับ >> Reference Class manual
แก้ไขข้อความเมื่อ
คำตอบที่ได้รับเลือกจากเจ้าของกระทู้
ความคิดเห็นที่ 1
เป็นหลักทั่ว ๆ ไปของการเขียนโปรแกรมครับ เวลาเราเรียกใช้ Method เราจะต้องรู้ด้วยว่า Method นี้ return อะไรให้เรา
ตามตัวอย่างที่คุณให้มา

//  SpreadsheetApp.getActiveSpreadSheet() จะ return Object สร้างจาก class Spreadsheet ดังนั้น type ของเขาคือ Spreadsheet
// mySpreadSheet มี Type เป็น Spreadsheet
var mySpreadSheet = SpreadsheetApp.getActiveSpreadSheet();
// Spreadsheet.getActiveSheet() return Object type Sheet
// myActiveSheet มี Type เป็น Sheet
var myActiveSheet = mySpreadSheet.getActiveSheet();
// Sheet.getRange return Range
// myRange คือ type Range
var myRange = myActiveSheet.getRange("A1");

แต่เนื่องจากเราสนใจแต่ Range จะพิมพ์ทำไมให้ยาวและมีตัวแปรที่ใช้สำหรับเรียกใช้ method เฉย ๆ ตั้งหลายตัว ย่อให้สั้นดีกว่า จะได้เป็น

var myRange = SpreadsheetApp.getActiveSpreadSheet().getActiveSheet().getRange("A1");

ง่าย ๆ คือ เราเรียก method จาก object ที่ return จาก method ก่อนหน้านี้นั่นแหละครับ
แสดงความคิดเห็น
โปรดศึกษาและยอมรับนโยบายข้อมูลส่วนบุคคลก่อนเริ่มใช้งาน อ่านเพิ่มเติมได้ที่นี่