再次理解javascript的apply

普通函数执行的时候,this指向函数执行的上下文
莫非它们像链条一样连在一起?
SZEZ)$}G.gif)
嗯嗯
刚想说这个
太灵活了,不知道是什么,想要干啥


call 和 apply就是绑定一个函数执行的 this指向
觉apply()和代码上下文有很大关系
这意思是修改父类吗?
修改this指向是为了啥?
有何图谋?
我想下场景哈
我个人认为。。。apply 和 call 之前的作用其实主要的作用就是为了实现原型链的继承
apply前面的这个对象就会变成a的属性?
而是本次执行的 函数执行的上下文变成了a
你的意思是只是在a中执行,但是和a没关系?
也就是说
XXX在执行的时候 你在里边调用 this 其实就是 a

是的呢。
我擦,js好底层啊
c#绝对做不到
用个其他变量也行啊
function Person (name, age) {
this.name = name
this.age = age
}
Person.prototype.show = function () {
console.log('name:', name, 'age', age)
}
// 这时,我又需要一个新的类,在name 和 age之外,我还需要一个 sex属性,但是,Person类是可以复用的,没有必要重新写一遍那些代码,所以我们需要用到Person来执行一些属性的构建操作
function Man (name, age) {
Person.apply(this, [name, age])
}
var people = new Man('Niko', 18)
但是这个继承方式。。并没有办法拿到 你apply的那个函数的prototype


就是这一句,会执行Person的代码,但是此时的this ,其实是Man实例化的上下文
[E(TP]2.gif)


这是近两年的新方法 我明白了,这是为了实现继承
是为了让Person替Man初始化一些属性
但是也可以用在一些比较令人惊喜的地方,哈哈
差不多是那个意思

这个是面试时候 apply出现频率比较高的
真难理解
这个我又不理解了
因为Math.max只支持一个个的参数传递,没办法传入一个数组
所以。就是利用apply的这个特性。
我讨厌这种用法
]$[EJ}0.jpg)
把语法和执行混在一起
你甚至可以在代码中生成代码然后去执行。。。
有勇无谋
再次理解javascript的apply的更多相关文章
- 理解 JavaScript call()/apply()/bind()
理解 JavaScript this 文章中已经比较全面的分析了 this 在 JavaScript 中的指向问题,用一句话来总结就是:this 的指向一定是在执行时决定的,指向被调用函数的对象.当然 ...
- 再次理解JavaScript原型链和匿名函数
<!--------------------------------------------- 1.演示匿名加载 2.js单进程执行流 3.原型链理解 a.__proto__:属性每个对象都有 ...
- 要理解javascript中间apply和call
apply和call它是javascript一个非常重要的方法,.虽然与程序平时很少接触,但JS到处都在使用这个框架2方法. 2个方法是在Function.prototype中.也就是说每一个JS函数 ...
- 再次理解javascript中的事件
一.事件流的概念 + 事件流描述的是从页面中接收事件的顺序. 二.事件捕获和事件冒泡 + 事件冒泡接收事件的顺序:
- javascript中apply、call和bind的区别,容量理解,值得转!
a) javascript中apply.call和bind的区别:http://www.cnblogs.com/cosiray/p/4512969.html b) 深入浅出 妙用Javascrip ...
- [转] 理解 JavaScript 中的 Array.prototype.slice.apply(arguments)
假如你是一个 JavaScript 开发者,你可能见到过 Array.prototype.slice.apply(arguments) 这样的用法,然后你会问,这么写是什么意思呢? 这个语法其实不难理 ...
- 图说js中的this——深入理解javascript中this指针
没搞错吧!js写了那么多年,this还是会搞错!没搞错,javascript就是回搞错! ………… 文章来源自——周陆军的个人网站:http://zhoulujun.cn/zhoulujun/html ...
- 深入理解JavaScript中创建对象模式的演变(原型)
深入理解JavaScript中创建对象模式的演变(原型) 创建对象的模式多种多样,但是各种模式又有怎样的利弊呢?有没有一种最为完美的模式呢?下面我将就以下几个方面来分析创建对象的几种模式: Objec ...
- 理解Javascript的动态语言特性
原文:理解Javascript的动态语言特性 理解Javascript的动态语言特性 Javascript是一种解释性语言,而并非编译性,它不能编译成二进制文件. 理解动态执行与闭包的概念 动态执行: ...
随机推荐
- 如何在SAP Cloud for Customer自定义BO中创建访问控制
文章作者: Yi 已获得Yi的转载许可. 访问控制方式和使用注意事项 1. C4C中的访问控制有两种方式 RelevantForAccessControl AccessControlContext 2 ...
- 在SAP云平台的CloudFoundry环境下消费ABAP On-Premise OData服务
我的前一篇文章 使用Java+SAP云平台+SAP Cloud Connector调用ABAP On-Premise系统里的函数介绍了在SAP云平台的Neo环境下如何通过SAP Cloud Conne ...
- Python自学之路——自定义简单装饰器
看了微信公众号推送的一道面试题,发现了闭包的问题,学习时间短,从来没有遇到过这种问题,研究一下. Python函数作用域 global:全局作用域 local:函数内部作用域 enclosing:函数 ...
- 2018.1.4 UML 第三章 用例图
第三章 用例图 (1)参与者 是指系统以外的需要使用系统或与系统交互的外部实体,吧阔人.设备.外部系统等. (2)参与者之间的关系 泛化关系的含义是参与者的共同行为提取出来表示成通用行为,并描述成超类 ...
- nodejs fs路径
引用:https://www.cnblogs.com/guangzhou11/p/7705257.html require()别的js文件的时候,将执行那个js文件. 注意: require()中的路 ...
- Finders Keepers-freecodecamp算法题目
Finders Keepers 1.要求 写一个 function,它遍历数组 arr,并返回数组中第一个满足 func 返回值的元素. 举个例子,如果 arr 为 [1, 2, 3],func 为 ...
- Java读取各种文件格式内容
所需的jar包哦也不要太记得了,大家可以搜搜,直接上代码: import java.io.BufferedInputStream; import java.io.File; import java.i ...
- nginx安装与部署
1:安装工具包 wget.vim和gcc yum install -y wget yum install -y vim-enhanced yum install -y make cmake gcc g ...
- 项目实战8.1—tomcat企业级Web应用服务器配置与会话保持
分类: Linux架构篇 tomcat企业级Web应用服务器配置与实战 环境背景:公司业务经过长期发展,有了很大突破,已经实现盈利,现公司要求加强技术架构应用功能和安全性以及开始向企业应用.移动A ...
- Python 正则表达式 search vs match
search()和match()函数都是正则表达式中的匹配函数,二者有何区别呢? 1.match()从string的开始位置进行正则匹配,即从0位置开始匹配,若匹配上则返回一个match对象,否则返回 ...