首页 > 试题广场 >

请问以下JS代码的输出是? function father(

[单选题]
请问以下JS代码的输出是?
function father() {
  this.num = 935;
  this.work = ['read', 'write', 'listen'];
}
function son() {}
son.prototype = new father();
let son1 = new son();
let son2 = new son();
son1.num = 117;
son1.work.pop();
console.log(son2.num);
console.log(son2.work);


  • 117、 ['read', 'write']
  • 935、['read', 'write','listen']
  • 935、 ['read', 'write']
  • 117、['read', 'write','listen']
function father() {
    this.num = 935;
    this.work = ['read', 'write', 'listen'];
}
function son() {}
son.prototype = new father(); 
// son.prototype = {  num:935, work:['read','write','listen'] }

let son1 = new son(); // son1 = { }
let son2 = new son(); // son2 = { }

son1.num = 117; // son1 = { num: 117 }

son1.work.pop(); 
//son1自己没有work,去原型里找到work,并删除work里的最后一项,
//此时son.prototype = {  num:935, work:['read','write'] }

console.log(son2.num);// son2自己没有num,去原型里找,有num:935

console.log(son2.work);
//son1和son2原型是同一个,所以此时原型里的work是['read', 'write']


编辑于 2022-01-21 23:01:18 回复(2)
原型链继承,如果属性有引用类型的,改变一个,则其他的也会跟着改变
发表于 2021-12-16 11:23:42 回复(0)
function father() {
  this.num = 935;
  this.work = ['read', 'write', 'listen'];
}
function son() {}
son.prototype = new father(); //相当于son.prototype = father.prototype
let son1 = new son(); //相当于 new father()
let son2 = new son();
son1.num = 117;  //设置自己的num
son1.work.pop(); //自己没有work找到原型的work
console.log(son2.num); //找num 自己没 找原型的num 所以为935
console.log(son2.work);//找work自己没 找原型的work 因为之前pop了一次 所以为['read','write']
发表于 2022-02-28 16:55:51 回复(3)
对象属性的赋值会直接添加属性到对象中,如果是访问属性及其方***涉及到原型链操作。
发表于 2021-12-17 12:14:54 回复(0)
通过一个实例对象修改原型上的一个基本类型的属性时,该属性不会被修改,而是在实例对象上创建一个同名属性进行赋值;当该属性为引用数据类型时,若不改变引用地址,则可修改原型上的数据,若改变引用地址,则在实例对象上也创建一个同名属性进行赋值。
发表于 2022-08-20 16:48:00 回复(0)
work是数组,是一个引用类型
发表于 2021-12-10 13:20:54 回复(0)
发表于 2022-04-30 12:04:40 回复(0)
这道题涉及到原型链,这个图是我在图形化演示的网站的截图,看了就明白了
发表于 2022-10-27 00:32:01 回复(1)
类函数不用大写命名吗
发表于 2023-10-02 19:13:53 回复(0)
原型链继承存在实例对象共享引用类型数据的bug
发表于 2023-02-21 19:04:49 回复(0)
还是不能心算啊,
编辑于 2024-03-21 13:22:33 回复(0)
数组是引用类型,
发表于 2023-10-19 11:03:39 回复(0)