function p () { this.name = 'x'; var name = 'y'; this.getName = function () { return name; } } // 求值 console.log(new p().getName()); getName方法里面返回name值,此时name值从作用域里面找,即var name = 'y';,返回y: 将getName方法里面的return name;改成return this.name;,这时会从this里面找属性为na…
原型链理解起来有点绕了,网上资料也是很多,每次晚上睡不着的时候总喜欢在网上找点原型链和闭包的文章看,效果极好. 不要纠结于那一堆术语了,那除了让你脑筋拧成麻花,真的不能帮你什么.简单粗暴点看原型链吧,想点与代码无关的事,比如人.妖以及人妖. 1)人是人他妈生的,妖是妖他妈生的.人和妖都是对象实例,而人他妈和妖他妈就是原型.原型也是对象,叫原型对象. 2)人他妈和人他爸啪啪啪能生出一堆人宝宝.妖他妈和妖他爸啪啪啪能生出一堆妖宝宝,啪啪啪就是构造函数,俗称造人. 3)人他妈会记录啪啪啪的信息,所以可…
1. function test() { var a = 1; setTimeout(function() { alert(a); a = 3; }, 1000); a = 2; setTimeout(function() { alert(a); a = 4; }, 3000); } test(); alert(0); 考察的是延时问题,经常考的东西了.答案:0,2,3.不要问我为什么 2.阿里的一道题,重在方法: 当我们使用CSS3新属性,比如:box-shadow或者transition时,…
prototype  可以有好多有优化实现方法 http://blog.csdn.net/liuqiwen0512/article/details/8089690 在 JavaScript 中,每个函数对象都有一个默认的属性 prototype,称为函数对象的原型成员,这个属性指向一个对象,称为函数的原型对象,当我们每定义了一个函数的时候,JavaScript 就创建了一个对应的原型对象,也就是说,当我们定义一个函数的时候,实际上得到了两个对象,一个函数对象,一个原型对象.原型对象是一个特殊的对…
function A(var1){ this.var1 = var1; } A.prototype = { var1:1 } var b=new A(); b.var1 = 2; var c = new A(); console.log(b.var1); //输出2 console.log(c.var1); //输出undefined function A(){ //do noting } A.prototype = { var1:1 } var b=new A(); b.var1 = 2; v…
今天初六,要上班啦... JAVASCRIPT,看来是丢不了了.. http://www.dengdeng90.com/wordpress/?p=241 http://www.cnblogs.com/TomXu/archive/2011/12/15/2288411.html http://www.cnblogs.com/wangfupeng1988/p/3977924.html <script> console.log(Object.getOwnPropertyNames(Object.pro…
看到一道好题,并附答案 function Foo() { getName = function () { console.log('1'); }; return this; } Foo.getName = function () { console.log('2'); }; Foo.prototype.getName = function () { console.log('3'); }; var getName = function () { console.log('4'); }; func…
参考一手资料:http://dmitrysoshnikov.com/ecmascript/javascript-the-core/中文翻译版本:https://zhuanlan.zhihu.com/p/32042645 Javascript 是一种单线程编程语言,这意味着它只有一个调用栈,call Stack(调用栈 ,,先入后出) 核心:对象,原型链,构造函数,执行上下文堆栈,执行上下文,变量对象,活动对象,作用域链,闭包,This js原型链? 定义 原型对象也是简单的对象并且可以拥有它们自…
1.所有函数都有一个特别的属性 prototype : 显式原型属性 [普通构造函数的实例对象没有prototype 属性,构造函数有__proto__属性,原型对象有__proto__属性 ] 2.函数的prototype属性(图) 每个函数都有一个prototype属性, 它默认指向一个Object空对象(即称为: 原型对象) [即Object实例对象 {}] 原型对象中有一个属性constructor, 它指向函数对象 [相互引用] 3.给原型对象添加属性(一般都是方法) 作用: 函数的所…
作用域.原型链.继承与闭包详解 注意:本章讲的是在es6之前的原型链与继承.es6引入了类的概念,只是在写法上有所不同,原理是一样的. 几个面试常问的几个问题,你是否知道 instanceof的原理 如何准确判断变量的类型 如何写一个原型链继承的例子 描述new一个对象的过程 也许有些同学知道这几个问题的答案,就会觉得很小儿科,如果你还不知道这几个问题的答案或者背后所涉及到的知识点,那就好好看完下文,想必对你会有帮助.先不说答案,下面先分析一下涉及到的知识点. 什么是构造函数 JavaScrip…