1. Baris ketiga kod tidak difahami.
Baris ketiga harus dilaksanakan Tambahkan data
ke super_robot
sebagai objek prototaip. super_robot
添加 data
作为原型对象。
那为什么不是 SuperRobot.__proto__=data;
而是say.__proto__=data;
Kalau begitu kenapa bukan SuperRobot.__proto__=data;
tetapi say.__proto__=data
??
function SuperRobot(data) {
var say = function() { return "Hello World!"; };
say.__proto__=data;
return say;
}
var data = { name:"atom", age: 5};
var super_robot = SuperRobot(data);
console.log(super_robot()); //Hello World!
console.log(super_robot.age); //5
console.log(typeof super_robot); //function
Siapa yang patut ditambah pada masa ini
super
等于什么?是不是等于
Fun
内声明的a?所以
__proto_
.Menulis seperti ini bersamaan dengan menulis semula rantaian prototaip super_robot, yang tidak boleh dianggap sebagai sambungan Pada asalnya, super_robot.__proto__ menghala ke Function.prototype boleh dikatakan bahawa selepas menulis semula, super_robot telah pun Ia tidak lagi boleh dianggap sebagai fungsi sebenar Kini ia tidak boleh menggunakan kaedah pada prototaip Fungsi, seperti memanggil, memohon, mengikat, dll.
.Jika anda melanjutkannya, anda harus menulis say.__proto__.name = nama, say.__proto__.age = umur, yang bersamaan dengan Function.prototype.name = nama, Function.prototype.age = umur, tetapi ini akan membuat semua instance fungsi Kedua-dua atribut ini diakses, jadi secara amnya tidak disyorkan untuk melanjutkan seperti ini
SuperRobot hanyalah fungsi kilang, apa yang dikembalikan adalah teras