JS中的phototype是JS中比较难理解的一个部分 本文基于下面几个知识点: 1 原型法设计模式 在.Net中可以使用clone()来实现原型法 原型法的主要思想是,现在有1个类A,我想要创建一个类B,这个类是以A为原型的,并且能进行扩展.我们称B的原型为A. 2 javascript的方法可以分为三类: a 类方法 b 对象方法 c 原型方法 例子: function People(name){  this.name=name;  //对象方法  this.Introduce=functi…
js函数式编程确实比很多强语言使用灵活得多,今天抽了点时间玩下类与对象方法调用优先级别,顺便回顾下继承 暂时把原型引用写成继承 先看看简单的两个继承 var Parent = function(){}; var b = new Parent(); Object.defineProperty(b,"Name",{value:"John",writable:true}); var A = function(){}; A.prototype= b; var a = new…
类方法:也叫函数方法,在JavaScript中函数也是一个对象,所以可以为函数添加属性以及方法: 对象方法:包括构造函数中的方法以及其原型上面的方法: 原型方法:一般用于对象实例共享,在原型上面添加该方法,就能实现共享. Javascript中的function作为构造函数时,就是一个类,搭配上new操作符,可以返回一个对象. function People(name){ this.name=name; //对象方法 (实例方法) //每个对象实例都有的方法 //只有对象实例才能调用的方法 th…
一.利用对象收编变量 当我们决定实现某一项功能的时候最简单的其实就是写一个命名函数,然后调用来实现,就像这样: function checkName(){ //验证姓名 } function checkEmail(){ //验证邮箱 } checkEmail(); checkName(); 但是这样一来实际上增加了很多的值为函数全局变量,我们这么写会看的更清楚: var checkName = function(){ //验证姓名 } var checkEmail = function(){ /…
记录学习中容易混淆的一些方法. prop in object prop一个字符串类型或者 symbol 类型的属性名或者数组索引(非symbol类型将会强制转为字符串). objectName检查它(或其原型链)是否包含具有指定名称的属性的对象. js对象中in和hasOwnProperty()的区别在于是否查找Prototype链: Object.keys()会返回一个数组,包含所有可枚举的属性,Object.getOwnPropertyNames()也会返回一个数组,包含所有的属性无论他们是…
对象的原型:每个对象都连接一个原型对象,并且它可以从中继承属性.所有通过对象字面量创建的对象都连接到object.prototype.当你创建一个新对象时,你可以选择某个对象作为它的原型.原型连接在更新时不起作用.当我们对某个对象作出改变时,不会触及该对象的原型.原型连接只有在检索值的时候才被用到.如果我们尝试去获取对象的某个属性值,但该对象没有此属性名,那么JS会试着从原型对象中获取属性值,如果那个原型对象也没有该属性,那么再从它的原型中找,以此类推,直到该过程最后到达终点Object.pro…
1.以复制方式实现的继承 1.1浅拷贝 基本类型的复制 var parent = { lanage: "chinese" } var child = { name: "xxx", age: 12 } function extend(parent, child) { var child = child || {}; for (const propertype in parent) { child[propertype] = parent[propertype]; }…
记录对象的一些实用使用方法及属性 // Object.assign() 多个对象合并 key相同则后面的覆盖前面的 const target = { a: 1, b: 2 }; const source = { b: 4, c: 5 }; const returnedTarget = Object.assign(target, source); console.log(returnedTarget) // { a: 1, b: 4, c: 5 } // 克隆一个对象 原对象改变不会改变克隆的对象…
数组排序sort() sort()方法使数组中的元素按照一定的顺序排列. 语法: arrayObject.sort(方法函数) 参数说明: 1.如果不指定<方法函数>,则按unicode码顺序排列. 2.如果指定<方法函数>,则按<方法函数>所指定的排序方法排序. myArray.sort(sortMethod); 注意: 该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字.比较函数应该具有两个参数 a 和 b,其返回值如下: 若返回值<=-1,则表…
concat() 方法用于连接两个或多个数组.此方法返回一个新数组,不改变原来的数组. 语法 arrayObject.concat(array1,array2,...,arrayN) 参数说明: 注意:  该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本. 我们创建一个数组,将把 concat() 中的参数连接到数组 myarr 中,代码如下: <script type="text/javascript">   var mya = new Array(3);  …