Maison  >  Questions et réponses  >  le corps du texte

javascript - accès et création d'attributs d'objet js

Une question intéressante :

  1. var a = new Object();  
    var b = new Object();  
    var c = new Object();
      
    c[a] = a;  
    c[b] = b;
      
    console.log(c[a] === a); //输出什么?  ---> false
    console.log(c[b] === b); //输出什么?  ---> true
  2. var a = new Object();  
    var b = new Object();  
    var c = new Object();
      
    c.a=a;  
    c.b=b;
      
    console.log(c.a === a); //输出什么?  ---> true
    console.log(c.b === b); //输出什么?  ---> true

Ce qui est réellement en jeu ici, ce sont les connaissances liées à l'[]运算符 和.opérateur.

Ci-joint le règlement et le site internet pertinents, vous pouvez l'étudier vous-même :

MemberExpression : MemberExpression [Expression]

  1. Que baseReference soit le résultat de l'évaluation de MemberExpression.

  2. Laissez baseValue être GetValue(baseReference).

  3. ReturnIfAbrupt(baseValue).

  4. Laissez propertyNameReference être le résultat de l'évaluation de Expression.

  5. Laissez propertyNameValue être GetValue(propertyNameReference).

  6. ReturnIfAbrupt(propertyNameValue).

  7. Soit bv RequireObjectCoercible(baseValue).

  8. ReturnIfAbrupt(bv).

  9. Laissez propertyKey être ToPropertyKey (propertyNameValue).

  10. ReturnIfAbrupt (propertyKey).

  11. Si le code correspondant à la production syntaxique en cours d'évaluation est un code en mode strict, laissez strict être vrai, sinon laissez strict être faux.

  12. Renvoie une valeur de type Reference dont la valeur de base est bv et dont le nom référencé est propertyKey, et dont l'indicateur de référence strict est strict.

MemberExpression : MemberExpressionIdentifierName

  1. Que baseReference soit le résultat de l'évaluation de MemberExpression.

  2. Laissez baseValue être GetValue(baseReference).

  3. ReturnIfAbrupt(baseValue).

  4. Soit bv RequireObjectCoercible(baseValue).

  5. ReturnIfAbrupt(bv).

  6. Laissez propertyNameString être StringValue de IdentifierName

  7. Si le code correspondant à la production syntaxique en cours d'évaluation est un code en mode strict, laissez strict être vrai, sinon laissez strict être faux.

  8. Renvoie une valeur de type Reference dont la valeur de base est bv et dont le nom référencé est propertyNameString, et dont l'indicateur de référence strict est strict.

CallExpression : CallExpression [Expression]

  • Est évalué exactement de la même manière que MemberExpression : MemberExpression [ Expression ] sauf que l' CallExpression contenue est évaluée à l'étape 1.

CallExpression : CallExpression . Nom de l'identifiant

  • Est évalué exactement de la même manière que MemberExpression : MemberExpression IdentifierName sauf que l' CallExpression contenue est évaluée à l'étape 1.

ECMAScript 2015 #sec-property-accessors

ringa_leeringa_lee2663 Il y a quelques jours922

répondre à tous(1)je répondrai

  • 某草草

    某草草2017-07-05 11:00:49

    En fait, il s’agit d’Object toString.

    répondre
    0
  • Annulerrépondre