prototype.原型链.原型链图
//1.几乎所有函数都有prototype属性,这个是个指针,指向原型对象;Function.prototype这个没有//2.所有对象中都有__proto__属性.(Object.prototype该属性的值为null)//几乎所有函数都有 prototype/__proto__属性//3.函数都是Function的实例(函数是通过Function创建出来的对象)//自定义函数,Function,Array,RegExp,String,Boolean,Number,Object都是函数,都是通过Function创建出来的//4.几乎所有函数都继承自:Function.prototype//函数.__proto__===Function.prototype(除了Function.prototype本身,他没有prototype属性)//Object.__proto__===Function.prototype//Function.__proto__===Function.prototype//5.String.prototype.__proto__===Object.prototype// Array.prototype.__proto__===Object.prototype// Number.prototype.__proto__===Object.prototype// RegExp.prototype.__proto__===Object.prototype// Function.prototype.__proto__===Object.prototype
function fn(){returnthis;}var f3=new fn();console.log(f3);//fn//return {name:"张三"};//此时构造函数的返回值是一个对象就不再使用默认的返回值了,返回值就是当前的对象function fn2(){}var f2 =new fn2();console.log(fn2);//fn2的实例//如果没有返回值,会是默认的返回值//如果返回值是基本数据类型的话,还是会使用默认的返回值
function fn(){}console.log(fn.constructor);//Functionconsole.log(fn.__proto__===Function.prototype);//trueconsole.log(Object.__proto__===Function.prototype);//trueconsole.log(Function.prototype===fn.__proto__);//trueconsole.log(Object.constructor);// Functionconsole.log(fn.prototype.constructor);//fnconsole.log(Function.prototype.__proto__.constructor);// Object


var arr=["hello","say","pic"];var str3;//undefinedfor(var i=0;i<arr.length;i++){str3+=arr[i];//如果一个变量str3声明了没有赋值会有默认的值undefined如果参与运算的话就会出问题//所以以后再声明变量之后要给初始化的值}console.log(str3);//undefinedhellosaypicconsole.log(undefined+"abc");//变为一个字符串undefined abc
prototype.原型链.原型链图的更多相关文章
- javascript原型与原型链,prototype、__proto__、constructor
javascript通过构造函数(constructor)和原型链来(prototype chain)实现其他面向对象语言的类概念.ES6语法中引入了“类”(class)的概念,但只是一个语法糖,只是 ...
- js原型和原型链,以及__proto__、prototype属性
__proto__和prototype属性: 1.__proto__属性: 在JS里,万物皆对象(函数是对象.原型也是对象...).对象都具有属性__proto__,这个属性会指向该对象的原型. 2. ...
- 一张图弄懂js原型和原型链
前言 JavaScript的原型和原型链是面试的时候经常被问及到的问题,考察了我们对JavaScript的基础掌握情况,今天我们在这里用一张图来梳理下其中的知识点. 下面我来引入这张非常经典的图,我也 ...
- 275 原型与原型链:显式原型prototype ,隐式原型__proto__,隐式原型链,原型链_属性问题,给原型对象添加属性/方法
1.所有函数都有一个特别的属性 prototype : 显式原型属性 [普通构造函数的实例对象没有prototype 属性,构造函数有__proto__属性,原型对象有__proto__属性 ] 2. ...
- 继承:《原型和原型链(prototype 属性使您有能力向对象添加属性和方法。)》
二. 原型对象 在JavaScript 中,每当定义一个对象(函数)时候,对象中都会包含一些预定义的属性.其中函数对象的一个属性就是原型对象 prototype.注:普通对象没有prototype ...
- 原型及原型链,以及prototype和__proto__属性(笔记便于以后复习)
首先,js的数据结构有 原始类型(5种):Boolean.Number.String.Null.Underfined, 然后是引用类型:Array.Date.Error.RegExp.Function ...
- 你不知道的JavaScript--Item15 prototype原型和原型链详解
用过JavaScript的同学们肯定都对prototype如雷贯耳,但是这究竟是个什么东西却让初学者莫衷一是,只知道函数都会有一个prototype属性,可以为其添加函数供实例访问,其它的就不清楚了, ...
- JavaScript prototype原型和原型链详解
用过JavaScript的同学们肯定都对prototype如雷贯耳,但是这究竟是个什么东西却让初学者莫衷一是,只知道函数都会有一个prototype属性,可以为其添加函数供实例访问,其它的就不清楚了, ...
- JS prototype chaining(原型链)整理中······
初学原型链整理 构造器(constructor).原型(prototype).实例(instance); 每一个构造器都有一个prototype对象,这个prototype对象有一个指针指向该构造器: ...
- Object.prototype 原型和原型链
Object.prototype 原型和原型链 原型 Javascript中所有的对象都是Object的实例,并继承Object.prototype的属性和方法,有些属性是隐藏的.换句话说,在对象创建 ...
随机推荐
- getstu
#coding: utf- #title..href... import urllib.request import time url=[ page= j= : url[j]='http://www. ...
- 腾讯云ubuntu16.04安装MySql5.7未提示密码设置且无法登陆解决
一.安装 sudo apt-get update sudo apt install mysql-server 二.修改密码 1.由于安装过程中未提示要设置密码,且使用sudo mysql_secure ...
- gradle 排除jar
排除fastjson的包,其他同理compile('com.qq.sdk:core:2.0.3') { exclude group: 'com.alibaba'}
- 93、R语言教程详解
加载数据 > w<-read.table("test.prn",header = T) > w X.. X...1 1 A 2 2 B 3 3 C 5 4 D 5 ...
- 2019 ACM-ICPC 南京 现场赛 H. Prince and Princess
题意 王子想要娶公主,但是需要完成一个挑战:在一些房间中找出公主在哪. 每个房间有一个人,他们彼此知道谁在哪个房间.可以问他们三种问题: 你是谁? 在某个房间是谁? 公主在哪个房间? 有三类人,一类一 ...
- send_keys报错element not interactable
这两天要在阿里云日志中操作UI,以输入关键字搜索日志. 在send_keys时报错element not interactable. iframe 第一个问题是iframe,通过切换iframe解决: ...
- (4.20)sql server分离附加操作
关键词:sql server分离.sql server附加.分离附加.sql server附加分离 [0].数据库分离.附加的说明 SQL Server提供了“分离/附加”数据库.“备份/还原”数据库 ...
- JNI intArray
JNIDemo.java public class JNIDemo { static { /* 1. load */ System.loadLibrary("native"); / ...
- hbase GC优化
编辑配置文件 编辑 hbase-env.sh export HBASE_OPTS="$HBASE_OPTS -XX:+UseCompressedOops -XX:+UseParNewGC ...
- 忘记mysql超户密码的解决方法
本文章针对用yum安装的mariadb数据库,如果是tar包安装的mysql数据库,只是数据库命令的关闭启动方式不同而已. 方法一:[root@localhost ~]# killall -u mys ...