javascript - Novice, permettez-moi de poser une question fondamentale sur le développement de prototypes, pouvez-vous me donner quelques conseils ?
黄舟
黄舟 2017-05-18 10:58:53
0
3
535

1. La troisième ligne de code n'est pas comprise.
La troisième ligne doit être implémentée. Ajoutez data à super_robot en tant qu'objet prototype. super_robot添加 data作为原型对象。
那为什么不是 SuperRobot.__proto__=data;
而是say.__proto__=data; Alors pourquoi ce n'est pas SuperRobot.__proto__=data;
mais say.__proto__=data ??

2.🎜
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
黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

répondre à tous(3)
曾经蜡笔没有小新
function Fun(){
    var a = {};
    return a;
}
var super = Fun();

À qui faut-il super等于什么?
是不是等于Fun内声明的a?
所以__proto_ être ajouté en ce moment.

我想大声告诉你

Écrire comme ceci équivaut à réécrire la chaîne de prototypes de super_robot, qui ne peut pas être considérée comme une extension. À l'origine, super_robot.__proto__ pointait vers Function.prototype. Après la réécriture, super_robot.__proto__ pointait vers l'objet de données entrant. On peut dire qu'après la réécriture, super_robot ne peut plus être considéré comme une vraie fonction. Désormais, il ne peut plus utiliser les méthodes du prototype de fonction, telles que call, apply, bind, etc.

.
console.log( super_robot instanceof Function ); // false
console.log( super_robot.call ); // undefined

Si vous l'étendez, vous devez écrire say.__proto__.name = name, say.__proto__.age = age, ce qui équivaut à Function.prototype.name = name, Function.prototype.age = age, mais ceci fera toutes les instances de fonction. Ces deux attributs sont accessibles, il n'est donc généralement pas recommandé d'étendre comme ça

我想大声告诉你

SuperRobot n'est qu'une fonction d'usine, ce qu'il renvoie est le noyau

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal