Contract global variables
Every contract has the following three global functions:
this
: This represents the current contract and can be used from within a contract. It is a short form to refer to the current contract.
It can call any method within a contract as long as they are tagged as public or have external scope visibility, as shown next:
This.functionname(parameters)
It can be converted into an address type. This is generally required to call low-level functions such as transfer
, send
, and call
on a target contract to either call a method or transfer some tokens. It also helps in distinguishing existing contracts from other contract variables. The usage of this is shown next:
Address(this).transfer(1 ether)