原型的一些知识

普通调用函数,若函数没有return语句,等于return undefined,

构造函数调用的时候,1创建一个新对象,2将构造函数的作用域赋给新对象(this赋给了这个新对象),3执行构造函数中的代码(为这个新对象添加属性),4返回新对象

function A(){//1这一步是看不到的,创建一个新对象;    var a = {};//2第二步赋给新对象。    this = a;//3执行    alert(this);//4返回新对象    return this;}A.prototype.a = 1;console.log(new A().a);
function A() {

    alert(this);

    return {a: ‘a‘};
}
A.prototype.a = 1;
console.log(new A().a);new A()与原型没关系,因为返回的不是this,是自己返回的对象的属性a;

,

  

时间: 2024-10-13 07:12:54

原型的一些知识的相关文章

JS原型函数相关基础知识

函数对象和普通对象 //普通对象 var oo1 = {}, oo2 = new Object(), oo3 = []; console.log(typeof oo1 + ',' + typeof oo2 + ',' + typeof oo3); //object,object,object //函数对象 function ff1() {} var ff2 = function () {} var ff3 = new Function(); console.log(typeof ff1 + ',

javascript设计模式介绍(三) 原型模式 扩展知识

原型与 in 操作符 有两种方式使用 in 操作符:单独使用和在for-in 循环中使用.在单独使用时,in 操作符会在通过对象能够访问给定属性时返回 true,无论该属性存在于实例中还是原型中.看一看下面的例子. function Person(){} Person.prototype.name= "Nicholas"; Person.prototype.age= 29; Person.prototype.job= "Software Engineer"; Per

JavaScript对象、原型、原型链知识总结思维导图

这个思维导图是我对Object,原型,原型链等知识的总结,主要参考高程一书第六章,写完才发现这么多,以后可能会进行精简.内容可能会出现差错,欢迎批评指正.下载==>Github ECMAScript支持面向对象(OO)编程,但不使用类或者接口.对象可以在代码执行过程中创建和增强,因此具有动态性而非严格定义的实体.在没有类的情况下,可以采用下列模式创建对象. 工厂模式,使用简单的函数创建对象,为对象添加属性和方法,然后返回对象.这个模式后来被构造函数模式所取代. 构造函数模式,可以创建自定义引用类

深入理解javascript原型和闭包(4)——隐式原型

转载于http://www.cnblogs.com/wangfupeng1988/p/3979290.html 注意:本文不是javascript基础教程,如果你没有接触过原型的基本知识,应该先去了解一下,推荐看<javascript高级程序设计(第三版)>第6章:面向对象的程序设计. 上节已经提到,每个函数function都有一个prototype,即原型.这里再加一句话——每个对象都有一个__proto__,可成为隐式原型. 这个__proto__是一个隐藏的属性,javascript不希

js中原型和原型链理解

js中属性的继承以及查找都会用到原型链的知识,对于深入学习js的人来说是一个难点也是一个重点,下面梳理下对于原型以及原型链的理解. 首先,我们要知道什么是原型以及原型链?他们有什么样的作用? 可以理解为JS对象在创建时都会与之关联另一个对象,这就是我们所说的原型,每一个对象都会从原型"继承"属性.下图表示了构造函数与实例原型的关系,其中Object.prototype表示实例原型. 那么实例与实例原型又是怎么联系的呢?接下来又要说到另一个属性__proto__,每一个JS对象都有一个属

原型模式之基础

一.是什么? 定义:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象.(官方定义) 原型模式主要用于对象的复制,它的核心是就是类图中的原型类Prototype.Prototype类需要具备以下两个条件: 1.实现Cloneable接口.在java语言有一个Cloneable接口,它的作用只有一个,就是在运行时通知虚拟机可以安全地在实现了此接口的类上使用clone方法.在java虚拟机中,只有实现了这个接口的类才可以被拷贝,否则在运行时会抛出CloneNotSupportedExce

JavaScript之继承(原型链)

我们知道继承是oo语言中不可缺少的一部分,对于JavaScript也是如此.一般的继承有两种方式:其一,接口继承,只继承方法的签名:其二,实现继承,继承实际的方法.JavaScript不支持签名,因此只有实现继承.其中实现继承主要是依赖于原型链的.下面我将以原型链为重点说说继承的几种主要的方式: 原型链继承 借用构造函数继承 组合继承(重点) 第一部分:原型链继承 A 要说原型链继承,不得不首先介绍一下原型链的概念. 想象一下,如果使原型对象等于另一个对象的实例,则此时原型对象将包含一个指向另一

详解JavaScript中的原型和继承-转自颜海镜大大

本文将会介绍面向对象,继承,原型等相关知识,涉及的知识点如下: 面向对象与继承 CEOC OLOO 臃肿的对象 原型与原型链 修改原型的方式 面向对象与继承 最近学习了下python,还写了篇博文<重拾编程乐趣——我的Python笔记>,加深了我对面向对象的一些理解. 我们会对我们写的程序进行抽象,而不同的语言都提供了不同的抽象工具,比如各种语言里面的数组,集合(键值数组,哈希表,字典等)等提供了对数据的抽象:而VB里面的子程序,类C语言里面的函数,提供了抽象代码段的能力. 有时我们希望将数据

一张图瞬间让你明白原型链结构

看图之前我们首先来了解几个对象原型的基本知识:    例子:    function Fn() {}// Fn为构造函数    var f1 = new Fn();//f1是Fn构造函数创建出来的对象    构造函数的prototype属性值就是对象原型.(Fn.prototype就是对象的原型)    构造函数的prototype属性值的类型就是对象  typeof Fn.prototype===object.     对象原型中的constructor属性指向构造函数 (Fn.prototy