Javascript hasOwnProperty在循环中始终返回False

Javascript hasOwnProperty在循环中始终返回False,javascript,Javascript,我有以下几点 var firstObject = { firstName: "James", lastName: "Smith", nationality: "American", age: 12, get_age: function(){ return this.age; } } var secondObject = { state:

我有以下几点

    var firstObject = {
        firstName: "James",
        lastName: "Smith",
        nationality: "American",
        age: 12,
        get_age: function(){
            return this.age;
        }
    }
    var secondObject = {
        state: "oregon",
        city: "portland"
    }
    secondObject.__proto__ = firstObject;
    for(var i in secondObject){
        if(secondObject.hasOwnProperty[i]){
            console.log(secondObject[i]);
        }
        else{
            console.log("not my own property: " + secondObject[i]);
        }
    }
secondObject从firstObject扩展而来。在For-In循环中,州和城市应根据第一个if条件进行分类,而其他所有事物应根据else条件进行分类。当我运行上述代码时,我的所有属性/函数都会根据else条件进行分类。为什么hasOwnProperty方法在所有属性上都返回false

.hasOwnProperty[i]    (not a property)
应该是

.hasOwnProperty(i)    (It is a method)
您应该使用括号而不是方括号

应该是

.hasOwnProperty(i)    (It is a method)

你应该使用括号来代替方括号

不要这样设置原型-使用
对象。使用polyfill创建
。不要这样设置原型-使用
对象。使用polyfill创建
。它们被称为“括号”或有时只是“paren”,而不是“普通括号”它们被称为“括号”,有时只是“括号”,而不是“普通大括号”。