首页 > 编程知识 正文

vue使用js中的方法,使用眼霜的正确方法

时间:2023-05-05 05:10:12 阅读:240664 作者:176

今天看到公司一道js面试题,代码如下,问使用getName方法打印出1,2,3

var name = "1"; var obj = { name:2, prop: { name:3, getName: function() { return this.name; } } } console.info(obj.prop.getName()); //3 console.info(obj.prop.getName.call(obj)); //2 console.info(obj.prop.getName.call(this)); //1

这题考察两个点,一是 this代表当前对象

二是如何改变当前对象 这里使用call方法

如果想得到3 直接 obj.prop.getName() 即可,这事方法的当前对象是prop

如果想得到2 我们可以 obj.prop.getName.call(obj) 就是把obj对象传到方法内,这时候的this对象是obj, this.name 等同于obj.name

1也是同理 obj.prop.getName.call(this) 这里的this是当前页面 传window也是一样的

当然也可以使用apply, apply 和 call 的不同在于call,就是call方法接受的是若干个参数的列表,而apply方法接受的是一个包含多个参数的数组。 apply(thisargs,[])用数组给方法传递参数, call(this, param1,param2);  下面一个小例子

function callTest(name, price) { console.info(name + "-" + price); } callTest.call(this, 'superbing', 100); callTest.apply(this, ['superbing', 200]);

 

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。