手机版

基于js中的原型(完整解释)

时间:2021-09-03 来源:互联网 编辑:宝哥软件园 浏览:

在讨论js的原型之前,我们必须先了解Object和Function。

Object和function都是JS自己的Functions,Object继承自己,fun继承自己,Object和Function相互继承,也就是说Object和Function既是函数也是对象。

控制台日志(对象的函数实例);//trueconsole.log(函数的对象实例);//trueObject是Function的实例,Function是它自己的实例。

控制台日志(函数.原型);//(){[本机代码]} console . log(object . prototype);//对象普通对象和函数对象

JavaScript中的一切都是一个对象,但是对象之间是有区别的。分为功能对象和普通对象。

函数对象可以创建普通对象,但普通对象不能创建函数对象。普通对象在JS世界里有最低级别的想成为者,没有特权。

新函数创建的所有对象都是函数对象,其他都是普通对象(通常由对象创建),可以通过类型来判断。

函数f1(){ };type of f1/' function ' var O1=new f1();type of O1/' object ' var O2={ };o2 //'object '的类型这里需要注意的是,以下两种写法是一样的

函数f1(){ };==var f1=新函数();函数f2(a,b){ alert(a,b);}相当于varf2=新函数(a,b,' alert (a,b)');原型,_proto_和构造函数(构造函数)

下面两句话也很重要

1.每个函数对象都有一个原型属性,但普通对象没有。

原型下还有另一个构造函数,指向这个函数。

2.每个对象都有一个名为_proto_的内部属性,指向其对应构造函数的原型对象,原型链基于_ proto _;

好了,开始加载代码和示例,并构建一个公共对象,我们可以看到

1.o没有原型属性

2.是对象的一个实例

3.的原型指向对象的原型

4.对象.原型.构造函数指向对象本身

它也可以继续向下延伸.

var o={ };console . log(o . prototype);//未定义的控制台. log(对象的o实例);//true console . log(o . _ _ proto _ _===Object . prototype)//true console . log(Object===Object . prototype . constructor)//true console . log(Object . prototype . constructor)//function Object()console . log(Object . prototype . _ _ prototype _ _);//null

这是一个函数对象,可以从下面的例子中看到

1.demo是一个函数对象,f1仍然是一个普通的对象

2.f1是演示的一个例子

3.演示原型的__proto__指向对象的原型,而对象原型的__proto__指向空。

函数Demo(){ };var f1=new Demo();console . log(f1 . prototype);//未定义的console . log(f1 instance of Demo);//true console.log(f1。_ _ proto _ _===demo . prototype);//true console . log(Demo===Demo . prototype . constructor);//true console . log(demo . prototype . _ _ proto _ _===object . prototype);//true console . log(object . prototype . _ _ proto _ _);//null

原型链

在javascript中,每个对象将在内部生成一个proto属性。当我们访问一个对象属性时,如果该对象不存在,我们将返回到proto指向的对象,逐层搜索。这就是javascript原型链的概念。

f1。_ _ proto _==demo . prototype==demo . prototype . _ _ proto _==object . prototype==object . prototype . _ _ proto _==null

JS中的一切都是object,一切都是从Object派生出来的,也就是说一切的原型链的终点都指向null

以上基于js(全解释)的原型是边肖分享给大家的全部内容,希望能给大家一个参考和支持。

版权声明:基于js中的原型(完整解释)是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。