隐式原型和显式原型有哪些
时间: 2024-04-19 07:16:29 浏览: 22
在JavaScript中,每个对象都有一个隐式原型和一个显式原型。
1. 隐式原型(__proto__):每个JavaScript对象都有一个指向它的原型对象的内部链接,称为隐式原型或 __proto__,它定义了对象的属性和方法的访问方式。当查找一个对象自身没有的属性或方法时,会沿着这个对象的 __proto__ 链一直向上查找,直到找到该属性或方法或者到达原型链的顶端(Object.prototype)。
2. 显式原型(prototype):每个函数都有一个特殊的属性 prototype,它是一个对象,包含了由该构造函数创建的所有实例共享的属性和方法。当一个函数被用作构造函数时,它所创建的对象的 __proto__ 属性会指向该构造函数的 prototype 属性。因此,通过修改构造函数的 prototype 属性,可以添加新的属性和方法,从而影响到由该构造函数创建的所有实例。
需要注意的是,隐式原型和显式原型是两个不同的概念,它们之间并没有直接的关系。每个对象只有一个隐式原型,而每个函数都有一个 prototype 属性。因此,只有函数才有显式原型,而普通对象没有显式原型。
相关问题
js获取对象的原型链
JavaScript中获取对象的原型链有两种方式:显式查找和隐式查找。显式查找是通过对象的构造函数的prototype属性来查找原型对象,而隐式查找是通过对象的__proto__属性来查找原型对象。每个对象都有原型,原型的constructor属性指向的是构造函数本身。当读取对象的属性时,如果对象本身没有该属性,就会去其原型链上的原型对象查找,一直找到最顶层的Object.prototype为止。
protues函数声明隐式
在C语言中,函数的声明可以是显式的或隐式的。显式声明是指在调用函数之前提前声明函数的原型或定义函数的原型。隐式声明是指在调用函数之前没有提前声明函数的原型或定义函数的原型。
隐式声明的函数在编译器中的默认处理方式是将函数声明为具有返回类型为int的函数,这是因为在旧的C语言标准中,如果函数没有显式声明,则假设函数返回类型为int。然而,这种隐式声明的方式已经过时,现代的C语言标准要求函数的声明必须是显式的。
如果你想使用函数的隐式声明,你需要注意以下几点:
1. 隐式声明的函数必须在使用之前至少在同一个源文件中出现一次。
2. 隐式声明的函数的参数列表会被默认为int类型。
3. 隐式声明的函数的返回类型默认为int类型。
4. 隐式声明的函数如果没有显式定义,则会在链接期间引发错误。
然而,为了编写清晰、可维护的代码,建议始终使用显式声明来声明函数,以避免潜在的错误和问题。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)