简体   繁体   中英

Javascript: Which Browsers support prototype inheritance?

Currently I'm not using prototype because I remember that a day I've read an article where it was stated that Prototype is not supported in IE 7 and down below, but I can't find that article again but by the way it would be good to know how it is supported overall.

JScript (Microsoft's interpretation of Javascript) has supported the prototype property since version 2.0 ( MSDN ). The first version of Internet Explorer that supported JScript 2.0 was IE 3 ( MSDN ).

I'd say you're safe with IE7!


Edit: perhaps you're thinking about modifying the prototypes of host objects, such as Node . This is indeed not supported by IE >=7, and is a bad idea anyway. A good article on this is at perfectionkills.com .

The attribute .prototype exists in all JS implementations, otherwise it wouldn't be Javascript. ECMA-262 December 1999:

Objects

ECMAScript does not contain proper classes such as those in C++, Smalltalk, or Java, but rather, supports constructors which create objects by executing code that allocates storage for the objects and initialises all or part of them by assigning initial values to their properties. All constructors are objects, but not all objects are constructors. Each constructor has a Prototype property that is used to implement prototype-based inheritance and shared properties. Objects are created by using constructors in new expressions; for example, new String("A String") creates a new String object. Invoking a constructor without using new has consequences that depend on the constructor. For example, String("A String") produces a primitive string, not an object.

According to their downloads page , the current version of Prototype (1.7) is compatible with the following browsers:

Browser         Version(s)
Mozilla Firefox ≥ 1.5
Microsoft Internet Explorer for Windows ≥ 6.0
Apple Safari    ≥ 2.0.4
Google Chrome   ≥ 1.0
Opera           ≥ 9.25

update

IE7 definitely supports prototype inheritance.

If you mean the Prototype library, then Prototype's download page states that it is compatible with IE6 and higher.

[EDIT]

Your question edit makes the question very confusing. When you say "the real Javascript Prototype", what do you mean? Do you mean the feature of Javascript which allows you to add methods and properties to classes (eg String.Prototype.trim = function() {...} ) then yes, this is a basic property of the language, and has existed since the very begining, so yes it would be supported in IE7.

According to the Prototype website , it's compatible with IE6+, and a whole host of other browsers. However, I rarely use it so I can't talk from experience.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM