关于 this 和 prototype 的理解】的更多相关文章

1:this 的理解比较好的书是 <Javascript语言精粹> 平时我们全局写 var a = 1, 其实就是 window.a = 1; var f = function(){}, 其实就是 window.f = function(){} 当执行 f(), 相当于执行 window.f(), 那么f 里的 this 是调用它的对象, 即window var obj = {f: function(){} }, 当执行 obj.f(); 那么调用 f 的是 obj对象, 则 f 里的 thi…
var person={name:'ninja'}; person.prototype.sayName=function(){ return this.name; } 分析上面这段代码,看看有没有问题? 没错,这段代码是有问题的,我们可以通过Chrome看一下执行结果: 错误提示说找不到sayName 属性,不是记得说Javascript可以随时新增属性的吗?没错,Javascript确实可以添加属性,但是不是针对对象实例本身的,而是针对其对实例对象所属的类型的对象的.是不是听起来有些别扭,没错…
一切都是对象,对象是若干属性的集合   数组是对象.函数是对象.对象还是对象.对象里面的一切都是属性,只有属性,没有方法.方法也是属性. 一切引用类型都是属性 怎么判断一个值是否是对象? 值类型的类型判断用 typeof , 引用类型的类型判断用 instanceof 对象都是通过函数创建的    //  对象是由构造函数 Object() 创建的 对象字面量   对象字面量:对象字面量是一个名/值对 列表,每个名/值对之间用逗号分隔. 使用对象字面量可以创建单个对象,语义直观 var pers…
一直不理解child.prototype = new Parent()和child.prototype =Parent.prototype的区别,到现在为止,我觉得它俩最大的区别就是:前者共享构造器里的属性,后者不会共享构造器里的属性.不过都是会继承Parent里的方法.…
JS中的prototype是JS中比较难理解的一个部分 本文基于下面几个知识点: 1 原型法设计模式 在.Net中可以使用clone()来实现原型法 原型法的主要思想是,现在有1个类A,我想要创建一个类B,这个类是以A为原型的,并且能进行扩展.我们称B的原型为A. 2 javascript的方法可以分为三类: a -> 类方法 b -> 对象方法 c -> 原型方法 例子: function People(name){ //对象属性 this.name=name; //对象方法 this…
1.什么是prototype? function F() {} f1 = new F();f2 = new F(); 以上的代码,F()是一个构造函数,f1和f2是由这个构造函数产生的对象. prototype是构造函数的一个属性,它的值就是由这个构造函数构造出来的对象的原型对象.(换句话来说,prototype既是构造函数的属性,也是由这个构造函数构造出来的对象的原型对象) 原型对象的属性和方法都会被"继承",换句话来说,F.prototype的属性和方法都会被f1和f2"…
/* 原型Prototype */ //一.原型 //原型使用一 var calculator = function (dlg, tax) { this.dlg = dlg; this.tax = tax; } calculator.prototype = { add: function (x, y) { return x + y; }, subtrac: function (x, y) { return x - y; } } //原型使用二 //封装私有函数 calculator.protot…
prototype是函数的内置属性,每一个function都拥有这样一个属性,在js的面向对象编程上,prototype发挥着强大的作用. 某天,春哥问我你知道prototype的原理吗?我突然懵了,这个东西都知道干嘛用,怎么用,但是它的原理,确实不知道.为什么放在prototype里的方法不会在每次new对象的时候在这些对象分配资源来存放这些方法,却又可以直接调用这些方法呢? 先来看看使用new关键字生成对象的时候,javascript解释器做了些什么? 以 var obj = new FF(…
constructor:每一个函数的Prototype属性指向的对象都包含唯一一个不可枚举属性constructor,该属性的值是这么一个对象:constructor指向了它所在的构造函数Prototype:每一个函数都包含一个prototype属性,这个属性指向的是一个对象的引用:而对已每一个函数(类)的实例都会从prototype属性指向的对象上继承属性,换句话说通过同一个函数创建的所有对象都继承一个相同的对象. function Person(name) { this.name = nam…
说明:本篇文章是搜集了数家之言,综合的结果,应向数家致谢 说到prototype,就不得不先说下new的过程. 我们先看看这样一段代码: <script type="text/javascript"> var Person = function (){ }; var p = new Person();</script> 很简单的一段代码,我们来看看这个new究竟做了什么?我们可以把new的过程拆分成以下三步: <1> var p={}; 也就是说,初…