当前位置: 首页 > Web前端 > JavaScript

FunctioninstanceofObject和ObjectinstanceofFunction都为true

时间:2023-03-27 01:19:22 JavaScript

1。需求基于原型链。我不想了解函数和对象之间的关系。刚检查过。2.原则js之父在设计js原型和原型链时遵循以下两条准则:准则一:原型对象(即Person.prototype)的构造函数指向构造函数本身准则二:实例(即person)的__proto__)指向与原型对象相同的地方3.关系null->Object.prototype->Function.prototype->Function->Object首先:在js中首先创建原型对象Object.prototype。然后:在这个原型对象的基础上创建原型对象Function.prototype。第二:通过这个原型对象创建函数Function。最后:被Function函数创建后,Object()对象。4.DemoObject.__proto__===Function.prototype//trueObject()是构造函数,函数也是对象//Object是FunctioninstanceofFunction生成的Object===true//trueFunction.prototype.__proto__===Object.prototype//true//Function.prototype由Object.prototype生成Object.prototype.constructor===Object//trueObjectinstanceofObject===true//true//Object.prototype===Object.prototypeFunction.__proto__===Function.prototype//trueFunction()是构造函数本身的构造函数//Function是由Function.prototypeFunction.prototype.constructor===Function//Function原型对象的构造函数指向Function本身FunctioninstanceofFunction===true//true//Function.prototype===Function.prototype//Function.__proto__===Object.prototype//falseFunctioninstanceofObject===true//trueObject.prototype.__proto__===null//trueObject.__proto__===Object.prototype//false,因为已经指向了Function的原型对象Function.prototype.constructor===Function//true5,特例FunctioninstanceofObject===true//trueObjectinstanceofFunction===true//为true的原因是:instanceof运算符用于检测参数对象的原型链上是否存在constructor.prototypefunctionCar(make,model,year){this.make=make;this.model=模型;this.year=year;}constauto=newCar('Honda','Accord',1998);console.log(autoinstanceofCar);//预期输出:trueconsole.log(autoinstanceofObject);//预期输出:真