再次理解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是一种解释性语言,而并非编译性,它不能编译成二进制文件. 理解动态执行与闭包的概念 动态执行: ...
随机推荐
- 300行ABAP代码实现一个最简单的区块链原型
不知从什么时候起,区块链在网上一下子就火了. 这里Jerry就不班门弄斧了,网上有太多的区块链介绍文章.我的这篇文章没有任何高大上的术语,就是300行ABAP代码,实现一个最简单的区块链原型. 我个人 ...
- [Rodbourn's Blog]How to export Excel plots to a vector image (EPS, EMF, SVG, etc.)
This is a bit of a workaround, but it's the only way I know of to export an Excel plot into a vector ...
- Android(java)学习笔记83:各种边距设置
1. 各种边距设置: (1)android:layout_paddingLeft 内边距,对谁用,指的是谁的内部内容边距 (2)android:layout_marginLeft 外边距,对谁用,指的 ...
- 黑幕背后的Autorelease
http://blog.sunnyxx.com/2014/10/15/behind-autorelease/ 我是前言 Autorelease机制是iOS开发者管理对象内存的好伙伴,MRC中,调用[o ...
- vuejs里面v-if,v-show和v-for
<div id='root'> <div v-if='show'>helle world</div> <button @click='handleClick' ...
- Linux一键脚本合集vps
首先,想说说一键脚本流行的原因何在? 众所周知的是,Linux 是占据大半壁江山的服务器系统,但在桌面上的占有率可就远不是那么回事儿了,使用和熟悉 Linux 的人远没有 Windows 多,但又因为 ...
- "segmentation fault " when "import tensorflow as tf"
https://github.com/tensorflow/tensorflow/issues/2034
- oc描述器排序
int main(int argc, const char * argv[]) { @autoreleasepool { NSArray *array = @[CreateDict(@"王思 ...
- javascript的基本类型和引用类型
一.基本类型和引用类型 基本的数据类型有5个:undefined,boolean,number,string,null ? 1 2 3 4 5 typeof null; //"object& ...
- 第11课 文章分类(组件化开发) Thinkphp5商城第四季
目录 思路: 控制器里 扩展类里: 视图层: 思路: 控制器查出所有数据后调用扩展类里的无限级分类 public function catetree($cateRes) 方法. 把排序好的数据传给视图 ...