首页 > 解决方案 > 了解 ExtJs 类属性

问题描述

我试图了解属性在 ExtJs 类中是如何工作的。参考以下代码:

Ext.define('My.sample.Person', {
    name: 'Unknown',
    food: undefined,
    foodList: [],
    constructor: function(name) {
        if (name) {
            this.name = name;
        }
    },

    eat: function(foodType) {
        console.log(this.name + " is eating: " + foodType);
        this.food = foodType;
        this.foodList.push(foodType);
        //this.foodList = [foodType]
    },
    
    showFood:function() {
         console.log(this.name);
        console.log(this.food);
    },
    
     showFoodList:function() {
         console.log(this.name);
        console.log(this.foodList);
    }
});

var bob = Ext.create('My.sample.Person', 'Bob');
bob.eat("Salad"); 
bob.showFood(); 
bob.showFoodList(); 
console.log(bob)
var alan = Ext.create('My.sample.Person', 'alan');
console.log(alan)
alan.showFood();
alan.showFoodList(); 
<script src="https://cdnjs.cloudflare.com/ajax/libs/extjs/6.2.0/ext-all.js"></script>

如果您检查“alan”的结果,则 food = undefined 和 foodList = ['salad'] 因为以某种方式将 foodList 分配给了原型。

在此处输入图像描述


同时,如果您这样做,那么它将正常运行。知道为什么吗?背后的概念是什么?

在此处输入图像描述

结果:

在此处输入图像描述

标签: extjsextjs6.2

解决方案


推荐阅读