首页
学习
活动
专区
工具
TVP
发布

js函数对象关系快速记忆

js中关于原型和原型链有 __proto__ 、prototype、constructor 频频出现在面试题中,但是记得多了反而容易记混。 这里简单总结下每个属性的使用场景,方便记忆。...对象函数都有 __proto__,对象的 __proto__指向构造函数的prototype,构造函数的__proto__指向 Function.prototype 对象函数都有constructor...,对象的 constructor指向构造函数,构造函数的constructor指向 Function 函数才有 prototype 函数的prototype又是一个对象,但是 Funtion.prototype...特殊记忆:typeof Function.prototype==="function" Object因为O大写,可以看出本质也是一个构造函数 __proto__ 指向一个原型对象,构造函数.prototype...__proto__===null,因为 Object.prototype 为js 原型链的顶端。

69130

前端进阶JS函数增强对象增强

JS函数增强 函数属性 JavaScript中函数也是一个对象,那么对象中就可以有属性和方法,他有一些默认的属性 name 函数名 length 函数参数个数(ES6 ......语法不会被算在内) arguments 类似数组对象 可以i用索引来获取对象 rset PS: 箭头函数不绑定 Arguments 对象 arguments 转为数组对象常见方法 普通的方法 就是将内容一个一个迭代到新数组了...他是一个特殊函数可以将传入的字符串当作js代码执行 可读性差 有注入风险 必须经过解释器 不会得到引擎的优化 严格模式的使用 js的局限性 : JavaScript 不断向前发展且并未带来任何兼容性问题...; 新旧代码该新模式对于向下兼容有帮助但是也有问题出现 就是创造者对于js的不完善之处会一直保留 ES5标准中提出了严格模式的概念,以更加严格的方式对代码进行检测和执行 只需要在代码的开头或者函数的开头...加入use strict就可以开启严格模式 JS对象增强 数据属性描述符 我们的属性一般定义在对象的内部或者直接添加到对象内部,但是这种方式我们就不能对属性进行一些限制,比如这个属性是否是可以通过delete

60230
您找到你想要的搜索结果了吗?
是的
没有找到

JavaScript函数对象

; } // 带参数的函数 function f2(a, b) { console.log(arguments); // 内置的arguments对象 console.log(arguments.length...词法分析的过程: 当函数调用的前一瞬间,会先形成一个激活对象:Avtive Object(AO),并会分析以下3个方面: 1:函数参数,如果有,则将此参数赋值给AO,且值为undefined。...2:函数局部变量,如果AO上有同名的值,则不做任何操作。如果没有,则将此变量赋值给AO,并且值为undefined。 3:函数声明,如果AO上有,则会将AO上的对象覆盖。如果没有,则不做任何操作。...函数内部无论是使用参数还是使用局部变量都到AO上找。 内置对象和方法 对象的分类   JavaScript中的所有事物都是对象:字符串、数字、数组、日期,等等。...填写正则表达式/匹配模式(逗号后面不要加空格) var reg2 = /^[a-zA-Z][a-zA-Z0-9_]{5,11}$/; reg2.test(s1); // true // String对象正则结合的

90260

JS对象Dom对象jQuery对象之间的区别

通过js获取的DOM对象就是js对象 当浏览器支持js的dom接口(api)时,这里狭义的dom对象是以js对象的形式出现的, 也就是一个js对象。...对象的方法和属性 3)jQuery对象js对象之间的相互转换 js转jQuery对象 $(js对象) jQuery对象js对象 var doc2=$("#idDoc2")[0]; //转换...jQuery对象为DOM对象 doc2.innerHTML="这是jQuery的第一个DOM对象" //使用jQuery对象本身提供的get函数来返回指定集合位置的DOM对象 var doc2...=$("#idDoc2").get(0); doc2.innerHTML="这是jQuery的第二个DOM对象" 二、细说jQuery对象和DOM对象的区别使用 2.1 jQuery对象和DOM...平时用到的jquery对象都是通过$()函数制造出来的,$()函数就是一个jquery对象的制造工厂。

2.8K10

从零开始学C++之STL(八):函数对象函数对象容器、函数对象算法

一、函数对象 1、函数对象(function object)也称为仿函数(functor) 2、一个行为类似函数对象,它可以没有参数,也可以带有若干参数。...3、任何重载了调用运算符operator()的类的对象都满足函数对象的特征 4、函数对象可以把它称之为smart function。...,再调用operator(); 三、函数对象容器 在这边举map 容器的例子,大家都知道map 在插入元素的时候会自动排序,默认是根据key 从小到大排序,看map 的定义: // TEMPLATE ...四、函数对象算法 在STL一些算法中可以传入函数指针,实现自定义比较逻辑或者计算,同样地这些函数也可以使用函数对象来代替,直接看例程再稍 作分析: #include  #include...使用函数对象的好处是比较灵活,比如直接使用函数Add3,那么只能将元素加3,而 使用函数对象Addobj(x), 想让元素加上多少就传递给Addobj类,构造一个对象即可,因为它可以保存一种状态(类成员

1.4K00

Kotlin 扩展函数 JS 的 prototypeKotlin 扩展函数 JS 的 prototype

Kotlin 扩展函数 JS 的 prototype Kotlin 扩展函数 Kotlin的扩展函数功能使得我们可以为现有的类添加新的函数,实现某一具体功能 。...this[index1] = this[index2] this[index2] = tmp } 对MutableList对象调用swap函数: val...扩展函数是静态解析分发的,不是虚函数(即没有多态),调用只取决于对象的声明类型! 1.调用是由对象声明类型决定,而不是由对象实际类型决定!...3.伴生对象-扩展函数和属性 可为伴生对象定义扩展函数和属性: class MyClass { companion object { } //伴生对象 } fun...call(D1()) // 输出 "D.foo in C", 扩展接收者静态解析(非多态) C1().call(D()) // 输出 "D.foo in C1",分发接收者虚拟解析(多态) JS

1.6K20

JS对象+构造函数+原型对象谈恋爱了嘛。

Person("zs", 44); obj2.say(); console.log(obj2.currentType); /** * prototype的特点:存在在原型对象里面的属性方法可以被构造函数的所有对象所共享...* 如果原型构造函数的属性方法相同,优先级执行的是构造函数里面的,如果没有到原型里面找. */ ...);//构造函数里面的prototype指向了对象(原型对象) /*2.每个"原型对象"中都有一个默认的属性, 叫做constructor constructor指向当前原型对象对应的那个..."构造函数" */ console.log(Person.prototype.constructor);//原型对象里面的constructor属性指向了函数(当前原型对象对应的那个..."构造函数") /*3.通过构造函数创建出来的对象我们称之为"实例对象" 每个"实例对象"中都有一个默认的属性, 叫做__proto__ __proto__指向创建它的那个构造函数

1.2K10

JS处理函数对象作为参数传递

做项目的时候遇到一个不是很常见的问题,就是js函数传递参数的时候,我们一般是传递一个数字或者是一个字符串,但是当你的需求满足不了的时候,就需要将对象或者数组作为一个参数传递过去,这个时候怎么做呢,今天简单的说有一下...这个是典型的三层的json结构,所以遍历的难度是不大的,就是很容就遍历出错,我的需求当然不是说仅仅将这些数据遍历出来就可以了,我需要做的是将最里层的data拿到,作为对象传递过去,因为这是每一个订单的具体内容...这个时候我们看上面的数据结构,最外层的是model_list包括的,所以直接取出来,拿到以后呢将我们需要的data拿到,转为json格式的,这个时候我们下面需要用到里面数据的时候就比较容易拿到,下一步就是怎么将对象...data作为一个参数传递过去,我们需要这样处理一下: JSON.stringify(detalData).replace(/\"/g, "'") 将我们拿到的json对象转为string的字符串,然后用正则表达式将里面所有的

6.9K30

JS 函数中的 arguments 类数组对象

箭头函数中没有 arguments 1. arguments 介绍 众所周知,js 是一门非常灵活的语言。...当我们在 js 中调用一个函数时,经常会给函数传递一些参数,js 把调用函数时传入的全部实参存储到一个叫做 arguments 的类数组对象里面 arguments 是一个类数组对象,不是一个真正的数组...这里做下总结 arguments 是类数组对象(伪数组),即不是一个真正的数组,而是一个对象。...箭头函数中没有 arguments arguments 只存在于普通函数中,而在箭头函数中是不存在的 下面代码抛出错误异常:Uncaught ReferenceError: arguments is not...defined const arrow = () => {    console.log(arguments);}arrow('html', 'css', 'js') 箭头函数中虽然没有 arguments

5.4K20

js数组、json、js对象的区别联系

理清这些问题,第一步当然是找到他们的概念:js所有事物都是对象:字符串、数值、数组、函数…此外,JavaScript允许自定义对象 (1)JS数组,常态为var a = [1,2,3]的格式,用文字来形容就是一个有序数列...person.key=“value” ; (3)json:一种存储和交换信息的格式,常态为var json = {“key”:“value”}的格式,这里和js对象不同的是key多了“” 区别联系:...一、json对象json字符串的联系: json对象 var json = { “key1”:“value1”, “key2”:“value2”, }; json...(json对象) ==》转化为json字符串 二、js对象json对象 js对象, var person = {key:“value”} json对象, var json = {“key”:“value...,string只是js对象的key的数据类型中的一个选项 额外说一点,js里面是没有键值对数组这一说的,现有的这种键值对数组(也即是关联数组)其实就是js对象,需要的要自己去构造,如: var

9.2K40

JS专栏】JS对象的浅拷贝深拷贝

1. object.assign object.assign 是 ES6 中 Object 的一个方法,该方法可以用于JS 对象的合并等多个用途,其中一个用途就是可以进行浅拷贝。...深拷贝则不同,对于复杂引用数据类型,其在堆内存中完全开辟了一块内存地址,并将原有的对象完全复制过来存放。 深拷贝后的对象原始对象是相互独立、不受影响的,彻底实现了内存上的分离。...拷贝的对象的值中如果有函数、undefined、symbol 这几种类型,经过 JSON.stringify 序列化之后的字符串中这个键值对会消失; 拷贝 Date 引用类型会变成字符串; 无法拷贝不可枚举的属性...实现深拷贝方法 下面是一个实现 deepClone 函数封装的例子,有几点需要注意下。...', id: 1 }, arr: [0, 1, 2], func: function () { console.log('我是一个函数') }, date: new Date(0),

2.3K40

【Node.js】全局可用变量、函数对象

总结 ---- 前言 在Node.js中提供了一些全局可用的变量、函数对象,全局就是不需要进行模块加载,可以直接使用的。其中包括全局作用域的函数对象。...也包括不在全局作用域,而在每个模块作用域都存在的变量、函数对象,在全局可用,但不是golbal对象的属性。...---- _dirname和_filename变量 Node.js提供了两个文件操作相关全局可用变量_dirname和_filename变量。...console对象 我们在学习中,经常使用到console.log()语句,console对象就是一个全局对象,用于提供控制台标准输出。...console.info([data][,…]) 返回信息性消息,这个命令console.log差别不大,除了在chrome中输出文字外,其余的会显示一个蓝色的惊叹号。

2.4K40

秒懂JS对象、构造器函数和原型对象之间的关系

学习JS的过程中,想要掌握面向对象的程序设计风格,对象模型(原型和继承)是其中的重点和难点,拜读了各类经典书籍和各位前辈的技术文章,感觉都太过高深,花费了不少时间才搞明白(个人智商是硬伤/(ㄒoㄒ)/~...一、基本概念   1、对象:属性和方法的集合,即变量和函数的封装。每个对象都有一个__proto__属性,指向这个对象的构造函数的原型对象。   ...2、构造器函数:用于创建对象函数,通过new关键字生成对象函数名一般首字母大写的。   ...3、原型对象:每个函数都有一个prototype属性,它是一个指向原型对象的指针(原型对象在定义函数时同时被创建) 二、创建对象的方法   1、使用构造函数和原型对象共同创建 ?...如上图,构造器函数Person(),通过new关键字创建了两个实例化对象p1、p2,这两个新对象都继承了,构造器Person()函数prototype属性所指向的原型对象

1.7K70
领券