以前有人注意到这种行为吗?这真的让我失望了......我原本希望原型数组对每个类实例都是私有的,而不是在所有类实例之间共享。
有人可以验证这是正确的行为,并可能更详细地解释这种行为吗?
注意注释的代码以及它如何影响脚本的行为。
<html>
<head>
<script type="text/javascript">
function print_r( title, object ) {
    var output = '';
    for( var key in object ) {
        output += key + ": " + object[ key ] + "\n";
    }
    output = title + "\n\n" + output;
    alert( output );
}
function Sandwich() {
    // Uncomment this to fix the problem
    //this.ingredients = [];
}
Sandwich.prototype = {
    "ingredients" : [],
    "addIngredients" : function( ingArray ) {
        for( var key in ingArray ) {
            this.addIngredient( ingArray[ key ] );
        }
    },
    "addIngredient" : function( thing ) {
        this.ingredients.push( thing );
    }
}
var cheeseburger = new Sandwich();
cheeseburger.addIngredients( [ "burger", "cheese" ] );
var blt = new Sandwich();
blt.addIngredients( [ "bacon", "lettuce", "tomato" ] );
var spicy_chicken_sandwich = new Sandwich();
spicy_chicken_sandwich.addIngredients( [ "spicy chicken pattie", "lettuce", "tomato", "honey dijon mayo", "love" ] );
var onLoad = function() {
    print_r( "Cheeseburger contains:", cheeseburger.ingredients );
};
</script>
</head>
<body onload="onLoad();">
</body>
</html>
非常感谢。