问一个JS中apply的问题?

作者站长头像
站长
· 阅读数 7

问一个JS中apply的问题?

function Person(name,age){
    this.name = name;
    this.age = age;
}
var person = new Person("xiaoming",100);
var obj = {}
Person.apply(obj,['xiaomings',300]);
console.log(person)

不是应该为['xiaomings',300]吗?

回复
1个回答
avatar
test
2024-06-28

你应该console.log(obj), 这样会打印{"name":"xiaomings","age":300}, 先通过 new Person("xiaoming", 100) 创建了一个新的 person 对象,该对象是"name":"xiaoming","age":100}, 你后面Person.apply person 对象是没有任何关系的

apply:方法能劫持另外一个对象的方法,继承另外一个对象的属性.

Function.apply(obj,args)方法能接收两个参数obj:这个对象将代替Function类里this对象args:这个是数组,它将作为参数传给Function(args-->arguments)

回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容