Reacg-Native call apply

更加详细的请看这篇文章

this.aaaa = 1234;

function add(a,b)
        {
            console.log('add:a=',a);
            console.log('add:b=',b);

// 内部的this 
            console.log('add:this=',this);

            console.log('this.aaaa=',this.aaaa)

            alert(a+b);
        }
     
        add.call(this,1,1); // 将函数内部的this改变,指向当前this
        //add.apply(this,[1,1])
image.png
 let abc = {
            a: 1111,
            b: 2222
        };

        function add(a,b)
        {
            console.log('add:a=',a);
            console.log('add:b=',b);

            console.log('add:this=',this);
            console.log('add:this.a=',this.a);
            console.log('add:this.b=',this.b);


            alert(a+b);
        }
        
        add.call(abc);// add函数内部的this指向abc
image.png
add.call(1,1,1); // 第一个参数就是函数内部的this指向,不可随便填写
image.png
 let a = {
            p1: 100,
            p2: 200,
            add: function () {
                console.log('this=',this)
                alert(this.p1 + this.p2)
            }
        };

        let b = {
            p1: 300,
            p2: 100,

        };

        a.add.call(b)
        // 可以理解为a中想获取b中的数据进行操作
        // 也可以理解为b的参数想实现a中的方法

image.png

在 javascript 中,call 和 apply 都是为了改变某个函数运行时的上下文(context)而存在的,换句话说,就是为了改变函数体内部 this 的指向。

apply()方法 接收两个参数,一个是函数运行的作用域(this),另一个是参数数组。

call()方法 接收参数,一个是函数运行的作用域(this),其他是一一列举出来的参数。

image.png

使用实例

假如A页面要调用B页面的方法,在B方法内部还想使用A的数据
在A中

B.func.call(this)

index.js

export default class Page extends Component {
    constructor(props) {
        super(props);
        this.userName = '尼古拉斯';
    }
    render() {
        return Render.render.call(this);
    }
}

render.js

export default {
    render() {
        let userName = this.userName; // 当前this指向A,可以获得A中的数据
        return (
           <View>...</View>
        )
    }
}

获取数组中的最大值和最小值

// 数组没有max方法,但是Math有,可以借助Math的方法进行比较
var numbers = [50, 234 , 742 , -80 ]; 
var maxNumber = Math.max.apply(Math, numbers),   //742
var maxNumber = Math.max.call(Math,50, 234 , 742 , -80); //742
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 3,815评论 0赞 4
  • 第3章 基本概念 3.1 语法 3.2 关键字和保留字 3.3 变量 3.4 数据类型 5种简单数据类型:Unde...
    RickCole阅读 5,652评论 0赞 21
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 29,293评论 1赞 45
  • 暖阳挥洒 凋敝静谧的旷野 是谁在尽情歌唱 那歌声 自遥远袅袅飘忽至耳旁 它为谁在深情吟唱 为白花已尽雪残依枝的油茶...
    ll暗香疏影阅读 284评论 0赞 2
  • 爱情 累积了世间无双的惊喜 由你从未看过的时光保管 凝结成独一无二的甜蜜 让人愿意用等待,期盼 来换取这份美好 即...
    玫瑰圣典CC阅读 195评论 0赞 0

友情链接更多精彩内容