The difference between built-in objects and native (Naitve) objects is that the former is always created during the engine initialization phase and is a subset of the latter; while the latter includes some objects that are created during the running process Dynamically created objects.
In addition, please add some concepts used in the picture:
1. The difference between built-in objects and native (Naitve) objects is that the former is always an object created during the engine initialization phase and is a subset of the latter; while the latter includes some Objects created dynamically during runtime.
2. Engine extension objects are a not too large set. Generally speaking, they are relatively certain. They also belong to the native objects of the engine (but do not belong to the native objects of the ECMA specification).
3. The host object is not a native object of the engine, but an object registered by the host framework into the JavaScript engine through some mechanism.
4. Some hosts will also call the objects/constructors they provide as "native objects". For example, Internet Explorer 7 calls the XMLHttpRequest() it provides native - in contrast, in its Objects created by methods such as "new ActiveXObject('Microsoft.XMLHTTP')" in earlier versions. In this case, readers should note the difference between "host's native objects" and "engine's native objects".
I hope this picture can help everyone better understand the relationship between various types of JavaScript and gain some insights.