In the constructor body of a derived class (with extends), the super keyword may appear as a "function call" (super(...args)), which must be called before the this keyword is used, and before the constructor returns. It calls the parent class's constructor and binds the parent class's public fields, after which the derived class's constructor can further access and modify this.
The "property lookup" form can be used to access methods and properties of an object literal's or class's [[Prototype]]. Within a class's body, the reference of super can be either the superclass's constructor itself, or the constructor's prototype, depending on whether the execution context is instance creation or class initialization. See the Examples section for more details.
Note that the reference of super is determined by the class or object literal super was declared in, not the object the method is called on. Therefore, unbinding or re-binding a method doesn't change the reference of super in it (although they do change the reference of this). You can see super as a variable in the class or object literal scope, which the methods create a closure over. (But also beware that it's not actually a variable, as explained above.)
Here, extendedField is undefined instead of 10, because baseField is defined as an own property of the Base instance, instead of Base.prototype. super, in this context, only looks up properties on Base.prototype, because that's the [[Prototype]] of Extended.prototype.
Super can also be used in the object initializer notation. In this example, two objects define a method. In the second object, super calls the first object's method. This works with the help of Object.setPrototypeOf() with which we are able to set the prototype of obj2 to obj1, so that super is able to find method1 on obj1.
Accessing super.x behaves like Reflect.get(Object.getPrototypeOf(objectLiteral), "x", this), which means the property is always seeked on the object literal/class declaration's prototype, and unbinding and re-binding a method won't change the reference of super.
When calling super.prop as a function, the this value inside the prop function is the current this, not the object that super points to. For example, the super.getName() call logs "Extended", despite the code looking like it's equivalent to Base.getName().
Setting properties of super, such as super.x = 1, behaves like Reflect.set(Object.getPrototypeOf(objectLiteral), "x", 1, this). This is one of the cases where understanding super as simply "reference of the prototype object" falls short, because it actually sets the property on this instead.
super.x = 1 will look for the property descriptor of x on A.prototype (and invoke the setters defined there), but the this value will be set to this, which is b in this context. You can read Reflect.set for more details on the case when target and receiver differ.
In the constructor body of a derived class (with extends), the super keyword may appear as a \"function call\" (super(...args)), which must be called before the this keyword is used, and before the constructor returns. It calls the parent class's constructor and binds the parent class's public fields, after which the derived class's constructor can further access and modify this.
The \"property lookup\" form can be used to access methods and properties of an object literal's or class's [[Prototype]]. Within a class's body, the reference of super can be either the superclass's constructor itself, or the constructor's prototype, depending on whether the execution context is instance creation or class initialization. See the Examples section for more details.
Accessing super.x behaves like Reflect.get(Object.getPrototypeOf(objectLiteral), \"x\", this), which means the property is always seeked on the object literal/class declaration's prototype, and unbinding and re-binding a method won't change the reference of super.
When calling super.prop as a function, the this value inside the prop function is the current this, not the object that super points to. For example, the super.getName() call logs \"Extended\", despite the code looking like it's equivalent to Base.getName().
Setting properties of super, such as super.x = 1, behaves like Reflect.set(Object.getPrototypeOf(objectLiteral), \"x\", 1, this). This is one of the cases where understanding super as simply \"reference of the prototype object\" falls short, because it actually sets the property on this instead.
The Super Bowl is the annual league championship game of the National Football League (NFL) of the United States. It has served as the final game of every NFL season since 1966, replacing the NFL Championship Game. Since 2022, the game has been played on the second Sunday in February. Prior Super Bowls were played on Sundays in early to mid-January from 1967 to 1978, late January from 1979 to 2003,[a] and the first Sunday of February from 2004 to 2021. Winning teams are awarded the Vince Lombardi Trophy, named after the eponymous coach who won the first two Super Bowls. Because the NFL restricts use of its "Super Bowl" trademark, it is frequently referred to as the "big game" or other generic terms by non-sponsoring corporations. The day that the game is held, is commonly referred to as "Super Bowl Sunday" or simply "Super Sunday".
Among the NFL's current 32 teams, 20 (11 NFC, nine AFC) have won a Super Bowl and 15 (eight AFC, seven NFC) hold multiple titles. The AFC's Pittsburgh Steelers and New England Patriots have the most Super Bowl titles at six each. The Patriots also have the most Super Bowl appearances at 11.[1] Among NFC franchises, the Dallas Cowboys and San Francisco 49ers are tied for both the most titles at five each and the most appearances at eight each. The Patriots and the Denver Broncos of the AFC hold the record for the most defeats in the Super Bowl at five each. The Baltimore Ravens of the AFC and the Tampa Bay Buccaneers of the NFC are the only franchises to be undefeated in multiple Super Bowls, having each won two. Among the 12 teams who have not won a Super Bowl, the AFC's Cleveland Browns, Houston Texans, and Jacksonville Jaguars, and the NFC's Detroit Lions are the only four to have not appeared in the game.
The Super Bowl is among the world's most-watched single sporting events and frequently commands the largest audience among all American broadcasts during the year. It is second only to the UEFA Champions League final as the most watched annual club sporting event worldwide,[2] and the seven most-watched broadcasts in American television history are Super Bowls.[3] Commercial airtime during the Super Bowl broadcast is the most expensive of the year because of the high viewership, leading to companies regularly developing their most expensive advertisements for the broadcast and commercial viewership becoming an integral part of the event. The Super Bowl is also the second-largest event for American food consumption, behind Thanksgiving dinner.[4]
For four decades after its 1920 inception, the NFL successfully fended off several rival leagues. In 1960, it encountered its most serious competitor when the American Football League (AFL) was formed. The AFL vied with the NFL for players and fans. After the AFL's inaugural season, AFL commissioner Joe Foss sent an invitation to the NFL on January 14, 1961, to schedule a "World Playoff" game between the two leagues' champions, beginning with the upcoming 1961 season.[6] The first World Playoff game, if actually played, would have matched up the AFL champion Houston Oilers against the NFL champion Green Bay Packers. However, it took a half-dozen more seasons for this idea to become a reality.[citation needed][7]
Roman numerals are used to identify each Super Bowl, rather than the year in which it is held, since the fifth edition, in January 1971.[14] The sole exception to this naming convention tradition occurred with Super Bowl 50, which was played on February 7, 2016, following the 2015 regular season. The following year, the nomenclature returned to Roman numerals for Super Bowl LI, following the 2016 regular season.
The winning team receives the Vince Lombardi Trophy, named after the former coach of the Green Bay Packers, who won the first two Super Bowl games as well as five NFL championships preceding the merger in 1961, 1962, 1965, 1966 and 1967. Following Lombardi's death in September 1970, the trophy was named after him. The first trophy awarded under the new name was presented to the Baltimore Colts following their win in Super Bowl V in Miami.
The Super Bowl was held in January from its inception in 1966 until 2002, when the week of games following the September 11 attacks were postponed and rescheduled, extending the season by a week and causing Super Bowl XXXVI to be played on February 3. Beginning with Super Bowl XXXVIII in 2004, the Super Bowl was scheduled for the first Sunday in February until the schedule expansion of the 2021 season moved the game to the second Sunday.[15]
795a8134c1