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