Є різниця в тому, що thisзавжди посилається на об'єкт, визначений найпотаємнішим шаблоном.
Вираз thisможе відображатися в частині висловлювань шаблону або типу сполуки. Це означає, що об'єкт визначається самим внутрішнім шаблоном або типом сполуки, що додає посилання. Якщо це складний тип, то тип такого thisтипу з'єднання. Якщо шаблон класу або об'єкта визначення з простим ім'ям C , тип це те ж саме , як тип C . this. (Scala Ref. §6.5)
Отже, якщо ви називаєте свій тип власного типу foo, ви все ще можете посилатися на нього як this(якщо, звичайно, ви не знаходитесь у внутрішньому шаблоні, в цьому випадку thisбуде посилатися на визначений ним об'єкт - і якщо ви не надасте внутрішній введіть однотипну шаблону), але, очевидно, не навпаки.