首页 > 其他分享 >prototype

prototype

时间:2023-03-24 19:37:45浏览次数:28  
标签:__ Box Desk new prototype 属性

Javascript的继承机制基于原型,而不是Class类

凡是通过 new Function() 创建的对象都是函数对象,其他的都是普通对象

普通对象没有prototype,但有__proto__属性

prototype属性(对象)会默认获得一个constructor(构造函数)属性,这个属性是一个指向prototype属性所在函数的指针
实例的 __proto__属性指向的是  构造函数的prototype
 function Foo(){}; var foo = new Foo();
foo.__proto__ == Foo.prototype//true
每声明一个function,都有prototype原型,prototype原型是函数的一个默认属性,在函数的创建过程中由js编译器自动添加
以下运行的结果是false的是 function Box(){this.name='zhang';}   
function Desk(){this.age=100;}    
function Table(){this.lever=1000}    
 Desk.prototype=new Box();//通过原型链继承     
var desk=new Desk();     
var table=new Table();

A
alert(table instanceof Object)

B
alert(desk instanceof Box);

C
alert(Desk instanceof Box);

D
alert(desk  instanceof Desk );


正确答案: C
解析:
A. 一切事物皆对象

B. Dest 继承了 Box, 所以正确

C. Desk 是 Function的实例,和Box无关

D. desk 是 Desk 的实例
Javascript的继承机制基于原型,而不是Class类
凡是通过 new Function() 创建的对象都是函数对象,其他的都是普通对象
普通对象没有prototype,但有__proto__属性
prototype属性(对象)会默认获得一个constructor(构造函数)属性,这个属性是一个指向prototype属性所在函数的指针

 

长风破浪会有时,直挂云帆济沧海



标签:__,Box,Desk,new,prototype,属性
From: https://blog.51cto.com/u_15961676/6147966

相关文章