精华内容
下载资源
问答
  • js 原型 原型链

    2021-06-16 19:29:09
    对象会继承原型 graph LB A[构造函数] == prototype属性 ==> B[对象的原型] A --构造–> B C proto> D

    参考博客
    对象会继承原型

    prototype属性
    constructor属性
    构造
    _proto_属性
    _proto_属性
    constructor
    prototype属性
    构造函数
    对象的原型
    对象实例
    Object.prototype
    Object

    函数名 === 构造函数 // true
    构造函数.prototype === 对象实例.__proto__ //true

    • 每个构造函数都有一个原型(prototype)
    • 每个实例都有__proto__指向它的构造原型
    • 原型也是一个对象的实例,因而也有__proto__
    • Object.prototype.__proto__ === null // true

    ES5 获取原型的方法:Object.getPrototypeOf(person)

    原型链

    对象会继承原型的属性

    __proto__ 指向的原型 是另一原型的实例,则该原型实例可以通过__proto__寻找原型 依次类推 构成一条原型链

    当读取实例的属性时,如果找不到,就会查找与对象关联的原型__proto__中的属性,如果还查不到,就去找原型的原型,一直找到最顶层为止。
    这样一层一层向上查找就会形成一个链式结构,即原型链。

    展开全文
  • JS原型 原型链

    2019-10-01 18:42:23
    JS中,无论是构造函数还是普通函数,都有prototype属性,并且每个通过构造函数new出来的对象也有一个隐式属性__proto__ function Person (name.age) { this.age = age this.name = name } var person = ...

    原型

    原型属性

    在JS中,无论是构造函数还是普通函数,都有prototype属性,并且每个通过构造函数new出来的对象也有一个隐式属性__proto__

    	function Person (name.age) {
    		this.age = age
    		this.name = name
    	}
    
    	var person = new Person('test', 12)
    
    	// 构造函数的原型和对象的原型
    	person.__proto__ = Person.prototype
    	
    

    原型对象的构造函数

    	Person.prototype.constructor === Person ---->true
    	
    	person.constructor === Person ---->true
    	
    	person.__proto__.constructor === Person ---->true
    	
    

    对原型属性的操作

    	function Person () {
    		
    	}
    	
    	var person = new Person ()
    	
    

    在new Person对象的时候,实际上是吧Person的原型赋给person对象

    	var person = {
    		__proto__: Person.prototype
    	}
    	
    

    所以在对原型属性进行操作时,需要注意:

    	// 直接对原型的属性进行crud,生效
    	Person.prototype.name = 'test'
    
    	delete Person.prototype.name
    
    	// 如果直接更改Person的原型对象,对已经创建出来的person实例是不生效的
    
    	var person = new Person()
    
    	Person.prototype = {
    		name : 'test1'
    	}
    	
    	console.log(person.name) ----->依旧是之前的test,因为person的隐式proto属性的指向未改变
    
    

    原型链

    	Function Foo () {
    	
    	}
    
    	var fn = new Foo()
    	
    	// 以下是对原型链的描述
    	fn.__proto__ === Foo.prototype
    	
    	// Foo.prototype相当于是Object的一个实例
    	Foo.prototype.__proto__ === Object.prototype
    	
    	// Foo相当于Function的一个实例
    	Foo.__proto__ = Function.prototype
    	
    	
    
    

    在这里插入图片描述

    展开全文
  • js原型原型链

    2019-10-21 11:45:09
    每个构造函数都有一个原型对象,原型对象都包含一个指向构造函数的指针,每个实例都有一个指向原型的内部指针 构造函数缺点:所有的实例对象都可以继承构造函数中的属性和方法,但是同一对象实例之间无法共享属性,...

    每个构造函数都有一个原型对象,原型对象都包含一个指向构造函数的指针,每个实例都有一个指向原型的内部指针

    构造函数缺点:所有的实例对象都可以继承构造函数中的属性和方法,但是同一对象实例之间无法共享属性,所以js有了prototype.

    prototype:相当于特定类型所有实例都可以访问到的一个共同容器。

    Function Dag(name,age,){
    var name,age
    }
    Dag.prototype.sayHello=function (){}
    var dog=new Dag()

    原型链

        每个对象都可以有一个原型_proto_,这个原型还可以有它自己的原型,以此类推,形成一个原型链。查找特定属性的时候,我们先去这个对象里去找,如果没有的话就去它的原型对象里面去,如果还是没有的话再去向原型对象的原型对象里去寻找...... 这个操作被委托在整个原型链上,这个就是我们说的原型链了

    Function Animail(){
    var type}
    Animail.prototype.sayHello=function(){}
    Function Dog(){
    var name,age}
    Dog.prototpe.Sear=function(){}
    Dog.prototype=new Animail()
    var dog=new Dog()

    // 属性遮蔽
    function Person() {
        this.name = '111';
    }
    Person.prototype.name = '222';
    
    var p1 = new Person();
    console.log(p1.name); // 111
    console.log(p1.__proto__.name); // 222
    
    
    var p2  = new Person();
    console.log(p2.age);

     

    展开全文
  • js原型原型链复习

    2019-11-13 16:39:05
    js原型原型链复习原型链基本概念举例原型和原型链有那些作用?1.判断负责复杂数据的数据类型2.实现属性和方法的继承3.遇到负责类的时候可以用来判断是否是我们需要的类 原型链基本概念 所有的引用类型(数组、函数、...

    原型链基本概念

    所有的引用类型(数组、函数、对象)可以自由扩展属性(除null以外)。
    所有的引用类型都有一个’_ _ proto_ _'属性(也叫隐式原型,它是一个普通的对象)。

    每个通过构造器创建的对象,也就是原型链最低端的对象会有一个 __proto__的属性
    这个属性指向它的构造器的prototype,
    而构造器的prototype有两个属性
    一个是constructor 指向构造器本身
    一个也是__proto__指向Object.prototype

    举例

    有一个function Person(){}构造器
    var lin = new Person();
    那么就有如下的链式调用关系

    lin.__proto__ == Person.prototype;
    lin.__proto__.constructor == Person.prototype.constructor == Person;
    lin.__proto__.__proto__ == Person.prototype.__proto__ == Object.prototype;
    lin.__proto__.__proto__.constructor == Person.prototype.__proto__.constructor 
    == Object.prototype.constructor = Object;
    lin.__proto__.__proto__.__proto__ == Person.prototype.__proto__ == Object.prototype.__proto__ 
    == null;
    

    原型和原型链有那些作用?

    1.判断负责复杂数据的数据类型

    Object.prototype.toString.call(obj);用于判断obj的数据类型
    返回[object String]
    [object Number]
    [object Array]
    [object Function]
    [object Date]
    [object Object]
    等等

    2.实现属性和方法的继承

    这个就不举例了

    3.遇到负责类的时候可以用来判断是否是我们需要的类

    这点是工作中总结的,遇到一个属性,方法数量极多的类,如何判断它是否是我们需要的呢,通过它的原型找它的构造器啊

    新人博主,觉得有收获的同学 点个收藏/评论支持下哦

    展开全文
  • 浅谈js原型原型链

    2020-07-28 19:45:10
    原型和原型链js的核心,因为js是以原型链的形式,保证函数或对象的属性可以向下传递。那来看看什么是原型链。 一、基本概念 –proto–:每一个实例对象都有一个私有属性(–proto–),指向它的构造函数的原型对象...
  • js 原型 原型链

    2020-03-31 15:44:30
    每一个构造函数都有prototype指向当前构造函数的原型对象 每一个实例对象都有__proto__,指向当前实例对象构造函数的原型对象prototype 原型对象也是对象也有__proto__属性,指向原型对象构造函数的原型对象即Object...
  • 文章目录JS高级显式原型和隐式原型原型链原型链的属性问题instanceof原型链继承内存溢出和内存泄漏作用域与作用域链闭包闭包的作用预编译1. 全局预编译2. 函数中的预编译JS用在本地存储一些函数 显式原型和隐式原型 ...
  • 如何理解原型和原型链的? 所有的函数数据类型都天生自带一个prototype属性,该属性的属性值是一个对象 prototype的属性值中天生自带一个constructor属性,其constructor属性值指向当前原型所属的类 所有的对象数据...
  • 彻底理解js原型 原型链

    千次阅读 2020-08-12 00:12:39
    __proto__ 是原型链查询中实际用到的,它总是指向 prototype,换句话说就是指向构造函数的原型对象,它是对象独有的。 概念复杂,情况图解。 2.图解 3.说明 1.构造函数实例化只有一个原型对象。即new第一次执行时,...
  • 可以将JS的对象分为三类:用户创建对象,构造函数对象,原型对象。 2.Object.prototype是所有对象的祖先,Function.prototype是所有函数的原型,包括构造函数。 3.所有对象中都有一个__proto__属性,其指向此对象的...
  • js原型链

    2021-04-01 21:05:10
    关于js原型链的知识: 所谓原型链其实就是指隐式原型对象(proto)的原型链; 任何函数的显式原型对象(prototype)都是Object的实例对象(除了Object函数); 实例对象的隐式原型对象(proto)等于其构造函数的显式...
  • Js原型链

    2019-03-26 22:23:41
    Js原型链相关理解
  • JS原型链

    2021-02-06 15:02:05
    JS原型链一、什么是原型链二、获取原型对象1.对象实例获取二、构造函数获取三、获取构造函数1.原型对象获取四、原型链五、原型链的操作一、查找属性 一、什么是原型链 在对象、构造函数、原型对象实例和原型对象的...
  • Js 原型链

    2019-04-02 10:29:35
    Js 原型链 参考网址:Js 原型链 小测试检验js 原型链的理解: person1.__proto__ 是什么? Person.__proto__ 是什么? Person.prototype.__proto__ 是什么? Object.__proto__ 是什么? Object.prototype.__proto...
  • JS原型原型链

    2016-04-27 17:54:51
    JS原型原型链
  • js原型链详解

    2021-05-26 22:25:03
    js原型链
  • JS原型原型链

    2021-03-06 21:58:04
    JS原型原型链一、prototype和__proto__的概念1.显示原型(prototype )2.隐式原型(__proto __)3.例题二、原型链图1.构造函数2._proto_与prototype3.person → Person → Object4.完整原型链 一、prototype和__...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 9,602
精华内容 3,840
关键字:

js原型原型链