var xyj = {
name: '孙悟空',
age: 1000,
gender: '男',
jieshao: function() {
return "姓名:" + this.name + "\n年龄:" + this.age + "\n性别:" + this.gender;
},
jieshao2: function(loc) {
return loc + ":\n" + "姓名:" + this.name + "\n年龄:" + this.age + "\n性别:" + this.gender;
}
};
var xyj2 = {
name: '猪八戒',
age: 800,
gender: '男',
}
// var intro = xyj.jieshao.call(xyj2);
// console.log(intro);
// var intro2 = xyj.jieshao2.call(xyj2, '高老庄');
// console.log(intro2);
var intro = xyj.jieshao.apply(xyj2);
console.log(intro);
intro = xyj.jieshao2.apply(xyj2, ['高老庄', ])//和call的惟一区别是用函数列表
console.log(intro);
这段代码展示了JavaScript对象中`jieshao`和`jieshao2`两个方法的使用,通过`call`和`apply`来改变方法内部`this`的指向,实现对象属性的展示。在`call`和`apply`的应用中,主要区别在于传递参数的方式,`call`直接传入参数,而`apply`则以数组形式传入。
1489

被折叠的 条评论
为什么被折叠?



