当前位置

网站首页> 程序设计 > 开源项目 > 程序开发 > 浏览文章

JavaScript原型及原型链 - dada86

作者:小梦 来源: 网络 时间: 2024-06-26 阅读:

JavaScript原型及原型链

区别一下,普通对象和函数对象。函数对象才有prototype属性。

函数对象:

function f1(){};var f2 = function(){};var f3 = new Function('str','console.log(str)');

普通对象:

var o3 = new f1();var o1 = {};var o2 =new Object();

简单的说,凡是通过 new Function() 创建的对象都是函数对象,其他的都是普通对象。
原型的作用就是继承。

原型链:
JS在创建对象(不论是普通对象还是函数对象)的时候,都有一个叫做__proto__的内置属性,用于指向创建它的函数对象的原型对象prototype。
原型对象prototype中都有个预定义的constructor属性,用来引用它的函数对象。

person.prototype. constructor === person  //trueFunction.prototype.constructor === Function //trueObject.prototype.constructor === Object //true

总结一下:

var animal = function(){};var dog = function(){};animal.price = 2000;//dog.prototype = animal;var tidy = new dog();console.log(dog. price)  //undefinedconsole.log(tidy.price)  // 2000

事实证明,真正起作用的不是prototype ,而是__proto__。

热点阅读

网友最爱