JavaScript 必备知识 -- 继承

网友投稿 563 2022-05-29

继承

继承了过多没用的属性

通过使用new关键字来实现继承父元素属性和方法,再通过prototype属性来改变函数原型,从而实现一条完整的原型链,从而实现子函数可以继承父函数的属性和方法

function Father() { this.name = 'hhh'; } var father = new Father(); Son.prototype = father; function Son() { } var son = new Son();//son下继承了father的name

JavaScript 必备知识 -- 继承

不能继承构造函数的原型

// 1. 父构造函数 function Father(uname, age) { // this 指向父构造函数的对象实例 this.uname = uname; this.age = age; } // 2 .子构造函数 function Son(uname, age, score) { // this 指向子构造函数的对象实例 // 3.使用call方式实现子继承父的属性 Father.call(this, uname, age); this.score = score; } var son = new Son('lin', 19, 100); console.log(son);

Son.prototype = Father.prototype,不能改动自己的原型

Father.prototype.lastName = 'lin'; function Father() { this.name = 'hhh'; } function Son() { } Son.prototype = Father.prototype;//son和father共用原型 var father = new Father(); var son = new Son();

在共享原型的基础上加多一个构造函数F做中间层,让F和Father共有原型,也就是把Father的原型赋值给F一份,在F和son之间操作,这样就可以隔开son和father但又不影响继承

function inherit(Target,Origin) { function F() {} F.prototype = Origin.prototype;//把父元素的原型给F Target.prototype = new F();//通过new的方法把F的原型返回给目标 } Father.prototype.lastName = 'lin'; function Father() {} function Son() {} inherit(Son.Father); var son = new Son(); var father = new Father();

枚举

遍历对象

用var k in obj,k是obj中对象属性,obj是我们要遍历的对象

var obj = { a : '1', b : '2', c : '3' } var obj1 = {} for(var k in obj) { if(obj.hasOwnProperty(k)){ console.log(obj[k]); } }

hasOwnProperty这个方法会判断这个属性是不是你自己的,是返回true

instanceof方法,A instanceof B意思是A对象是不是B构造函数构造出来的,看A的原型链上有没有B的原型

判断是数组还是对象

constructor// array ||Object

instanceof// true || false

toString // ‘[object Array]’ || [‘object Object’]

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:GaussDB(DWS)数据仓库概述丨【这次高斯不是数学家】
下一篇:域信任关系
相关文章