过了一段时间,没写 原生的 javascript 的了,感觉天天在用框架写代码,框架写代码完全限定死了你所需要思考的东西,只是在处理一些业务逻辑,真正的代码 都感觉不会写了. 突然发现,框架用的不熟悉,原生的代码也忘得差不多了.感觉很难受,人生不能这样子度过! 重新翻开<javascript 高级程序设计>, 回归到本原.工作上用框架写代码没错,业余时间的话就要自己多写一点原生的代码,或者说研究.模仿.直到自己设计一个 框架出来. js 中的类, 对象, 类的静态变量,类的继承 .functi…
__proto__和prototype属性: 1.__proto__属性: 在JS里,万物皆对象(函数是对象.原型也是对象...).对象都具有属性__proto__,这个属性会指向该对象的原型. 2.prototype属性: 除此之外,函数(Function)也是对象,而且函数除了上面说的__proto__这个属性外,还有额外的一个prototype属性.函数的 prototype 属性指向了一个对象,这个对象正是调用该构造函数而创建的实例的原型,也就是下面例子中的 person1 和 pers…
一.所有构造器/函数的__proto__都指向Function.prototype,它是一个空函数(Empty function) 1 2 3 4 5 6 7 8 9 Number.__proto__ === Function.prototype  // true Boolean.__proto__ === Function.prototype // true String.__proto__ === Function.prototype  // true Object.__proto__ ==…
JavaScript也是可以“继承”的! 各位看官或是好奇,或是一知半解.什么是prototype,__proto__,constructor.哪种继承方式好.今天就在这交流交流. 什么是prototype,__proto__,constructor https://blog.csdn.net/cc18868876837/article/details/81211729 (尊重原作者,这是篇超级好的文章,一定要点进去细细研读) 上面文章已经讲的很明白了,最后对文章总结再解释一下 第一点主要强调,…
一.所有构造器/函数的__proto__都指向Function.prototype,它是一个空函数(Empty function) 1 2 3 4 5 6 7 8 9 Number.__proto__ === Function.prototype  // true Boolean.__proto__ === Function.prototype // true String.__proto__ === Function.prototype  // true Object.__proto__ ==…
有一个一个装逼的同事,写了一段代码 function a(){} a.__proto__.__proto__.__proto__ 然后问我,下面这个玩意a.__proto__.__proto__.__proto__是啥,然后我一脸懵逼,prototype还知道一点,这个__proto__,还来三个,是个什么鬼.于是我一直不能放下这个问题,虽然我很懒,很不喜欢费脑子,但是这个坎还是过不去,最近两天研究了大半天,就有了这篇文章.我先说出答案, 上面的值为 null.我还很负责的告诉你,下面的_a._…
var person={name:'ninja'}; person.prototype.sayName=function(){ return this.name; } Chrome运行结果: 提示找不到sayName属性. js是可以随时添加属性,不过不是针对实例对象本身,而是针对其实例对象所属的类型对象. eg: var Person=function(name){ this.name=name; }; Person.prototype.sayName=function(){ return t…
prototype 作用:获取调用对象的对象原型引用 应用:可以为某对象原型添加方法 例: function getMax() { var max = this[0]; for(var x=0; x<this.length; x++) { if(this[x] > max) max = this[x]; } return max; } Array.prototype.getMax = getMax; //以后数组使用获取最大值的方法就可以如下调用,例如arr是以个整数数组 arr.getMax…
1.构造函数: 通常构造函数首字母需要大写,主要是为了区别ECMAScript的其它函数.(高程三 P145) 构造函数与其他函数的唯一区别,就在于调用它们的方式不同.只要通过new来调用,任何函数都是构造函数:而任何函数,如果不通过new来调用,那么它和普通函数也没有任何区别.(P146) 所谓"构造函数",其实就是一个普通函数,但是内部使用了this变量.对构造函数使用new运算符,就能生成实例,并且this变量会绑定在实例对象上. (就是一个普通的函数,与其他函数没有任何区别,可…
背景:最近没什么需求,快要闲出屁了,所以重温了一下js的原型,结果大有收获,且偶然看到Snandy大神的<JavaScript中__proto__与prototype的关系> 这篇文章,感觉真是受益匪浅,原文出处:http://www.cnblogs.com/snandy/archive/2012/09/01/2664134.html ****前戏结束,开始正题**** 一.所有构造器/函数的__proto__都指向Function.prototype(Function.prototype是一…