这与原型Javascript

这个问题在这里已经有了答案:

  • JavaScript .prototype如何工作? 21个答案

  • 我将尝试猜测/解决你的实际问题。

    请参阅以下代码片段:

    function A() {
       this.text = "hello";
    }
    
    var a = new A();
    a.text = "hello world";
    

    实际上,在构造函数(例如this.text )函数内设置text属性或者一旦对象已经创建(即a.text )之间只有区别。 基本上, this构造函数内的是被创建的对象与a变量是已创建的对象。

    两者之间的唯一区别是,在调用构造函数期间创建的对象中定义的属性将被创建给整个构造函数所创建的所有对象。

    现在看下面的代码片段:

    function A() {}
    A.prototype = {
        text: "hello"
    };
    
    var a1 = new A();
    var a2 = new A();
    
    // both will output "hello"
    console.log(a1.text);
    console.log(a2.text);
    
    A.prototype.value = "bye";
    
    // both will output "bye"
    console.log(a1.text);
    console.log(a2.text);
    

    结论:构造函数原型中定义的属性由共享相同原型的所有对象共享。 因此,即使您使用构造函数创建对象,它们仍然存在。

    链接地址: http://www.djcxy.com/p/30093.html

    上一篇: this vs prototype Javascript

    下一篇: Understanding Prototype and this