js 原型对象

一个对象,你可以改变它的construct函数,但是无法改变它的_proto_对象

IE中是没有_proto_这个属性的

this指向是运行时决定的

js中的call函数,第一个参数输入this指向的函数,第二个函数输入实参

call 与 apply用法相同,参数传输的参数不同

log.cal(obj,"name","age");
log.apply(obj,["name","age"]);

原型和原型链是JS实现继承的一种模型

原型链的形成是真正是靠proto 而非prototype

原型对象 prototype 在JavaScript 中,每当定义一个对象(函数)时候,对象中都会包含一些预定义的属性。其中函数对象的一个属性就是原型对象 prototype。注:普通对象没有prototype,但有proto属性

原型链 proto JS在创建对象(不论是普通对象还是函数对象)的时候,都有一个叫做proto的内置属性,用于指向创建它的函数对象的原型对象prototype

要深入理解这句话,我们再举个例子,看看前面你真的理解了吗?

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

Object.create() 是什么?

Object.create(proto [, propertiesObject ]) 是E5中提出的一种新的对象创建方式,第一个参数是要继承的原型,如果不是一个子函数,可以传一个null,第二个参数是对象的属性描述符,这个参数是可选的。 object.create帮我们实现了继承,但是没有帮我们把原型对象恢复过来


作者:spike

分类: Nodejs

创作时间:2023-06-25

更新时间:2024-12-08

联系方式放在中括号之中例如[[email protected]],回复评论在开头加上标号例如:#1