JS对象、原型、this学习总结

1.对象是函数创建的,而函数却又是一种对象。(属性的集合)

2.每个函数都有一个属性叫做prototype。这个prototype的属性值是一个对象,默认的只有一个constructor的属性,指向这个函数本身。

3.每一个对象多有一个__proto__隐式原型。指向创建该对象的函数的prototype。但Object.prototype是一个特例,他的__proto__指向的是null。

4.在函数中this到底取何值,是在函数真正被调用执行的时候确定的,函数定义的时候确定不了。

5.构造器:①constructor始终指向创建当前对象的构造(初始化)函数。②每个函数都有一个一个属性prototype,这个prototype的constructor指向这个函数本身。

6.Instanceof的判断队则:沿着A的__proto__这条线来找,同时沿着B的prototype这条线来找,如果两条线能找到同一个引用,即同一个对象,那么就返回true。如果找到终点还未重合,则返回false。

时间: 2024-08-27 18:39:02

JS对象、原型、this学习总结的相关文章

关于js的对象原型继承

javascript中,对象的继承是通过原型去继承. 可以这样理解:js中的对象,包含的除了属性和方法,还有一个最基本的原型__proto__对象.这个原型__proto__指向谁,这个对象就继承谁.这是最容易理解对象原型继承的一种方式. 如下面的代码: var student={ name:'zhangsan', age:21, run:function(){ return this.name+' is running!'; } }; var xiaoming={ name:'xiaoming

JS对象中的原型

对象的原型:每个对象都连接一个原型对象,并且它可以从中继承属性.所有通过对象字面量创建的对象都连接到object.prototype.当你创建一个新对象时,你可以选择某个对象作为它的原型.原型连接在更新时不起作用.当我们对某个对象作出改变时,不会触及该对象的原型.原型连接只有在检索值的时候才被用到.如果我们尝试去获取对象的某个属性值,但该对象没有此属性名,那么JS会试着从原型对象中获取属性值,如果那个原型对象也没有该属性,那么再从它的原型中找,以此类推,直到该过程最后到达终点Object.pro

JS 简单原型对象

<!-- ————————JS简单原型 ———————— --> function Person(){}; Person.prototype={ //constructor:Person,//必须加上 表示原型对象的构造函数 name:"Z3", age:"20", job:"人才", say:function(){ alert("简单原型"); } }; //ECMN5 给原型对象重新设置构造函数definePr

js:对象的创建(基于组合和动态原型)

基于原型的创建虽然可以有效地完成封装,但是依然存在如下问题: 1.无法通过构造函数来设置属性值 2.当属性中有引用类型变量时,可能存在变量值重复 function Person(){ } Person.prototype = { constructor:Person, name:"Leon", age:30, friends:["Ada","Chris"], say:function(){ alert(this.name+"["

JS对象继承与原型链

1.以复制方式实现的继承 1.1浅拷贝 基本类型的复制 1 var parent = { 2 lanage: "chinese" 3 } 4 5 var child = { 6 name: "xxx", 7 age: 12 8 } 9 10 function extend(parent, child) { 11 var child = child || {}; 12 for (const propertype in parent) { 13 child[proper

js对象的学习笔记(仅供参考)

一.面向对象语言的基本特征: 抽象.封装.继承.多态 封装:将抽象的数据和对数据的操作封装在一起,数据被保护在内部,程序的其他部分只有通过被授权的操作(成员方法),才能对数据进行操作 继承:由一个或多个类得来类的类的属性和方法的能力,一个类可以继承(extends)父类中的(public/protect)属性和(public/protect)方法,继承可以解决代码复用问题 多态:编写能以多种方法运行的函数或方法的能力 JS对象类型:本地对象.宿主对象(浏览器对象).内置对象 本地对象:独立于宿主

js(三) 原型对象与原型链

原型对象 每个javascript对象都有一个原型对象 原型链 由于原型对象本身也是对象,根据上边的定义,它也有自己的原型,而它自己的原型对象又可以有自己的原型,这样就组成了一条链,这个就是原型链,JavaScritp引擎在访问对象的属性时,如果在对象本身中没有找到,则会去原型链中查找,如果找到,直接返回值,如果整个链都遍历且没有找到属性,则返回undefined.原型链一般实现为一个链表,这样就可以按照一定的顺序来查找. 一.指定对象字面量的原型 示例1 思想方法:把一些对象共享的方法.属性,

javascript学习之js对象和json对象(obj=JSON.parse(stu))

js对象是键值对的容器, 一定要了解逗号和分号在js里面的用途 如果变量在函数内没有声明(没有使用 var 关键字),该变量为全局变量./w3cschool/i 是一个正则表达式.w3cschool 是一个模式 (用于检索).i 是一个修饰符 (搜索不区分大小写).使用正则表达式搜索 "w3cschool" 字符串,且不区分大小写:var str = "Visit w3cschool";var n = str.search(/w3cschool/i); 获取指定id

前端基本知识(二):JS的原型链的理解

之前一直对于前端的基本知识不是了解很详细,基本功不扎实,但是前端开发中的基本知识才是以后职业发展的根基,虽然自己总是以一种实践是检验真理的唯一标准,写代码实践项目才是唯一,但是经常遇到知道怎么去解决这个问题,但是不知道使用的是什么一种方法,方法的原理是什么,现在觉得大学里学习的基本知识还是很重要的,一定有自己的理解才能走的更远. 无论以后自己的学习新的技术,但是万变不离其宗,基本扎实,学习效率高. 废话这么多,开始了今天理解的四部分部分. 一.JS的原型链理解方式 二.原型理解 三.规则 四.j

JS对象继承的几种方式总结

今天学习了一下js的继承,js中的继承主要分四种,原型继承,构造函数继承,call/apply继承以及es6的extend继承.1.原型继承:原型继承主要利用js对象的prototype引用父类的构造函数来复制父类的方法. //定义一个Person类 function Person(name){ this.name=name; } //打招呼 Person.prototype.sayHello=function(){ alert("Hello,my name is "+this.nam