在javascript中创建对象的两种方法

前端之家收集整理的这篇文章主要介绍了在javascript中创建对象的两种方法前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在通过以下方式创建 javascript对象:
function field(name,label){
        this.name = name
        this.label= label;
}

var a = new field("market","Mkt").

然后我分配给另一个对象.

object.newField = a;

第二种方法是直接创建新属性

object.2ndNewField = {
    name: "market2",label:"Mkt2"
}

我尝试读取其他函数中的对象.但是,当我对对象进行字符串化时,它们表现不同.我创建的两个属性之间有什么区别?

顺便问一下这个对象有什么区别吗?

object.2ndNewField = {
        "name": "market2","label":"Mkt2
    }

解决方法

区别在于,在第一种情况下,创建的对象继承自field.prototype,然后是Object.prototype(即其内部[[Prototype]]是field.prototype,其内部[[Prototype]]是Object.prototype),其中as在第二种情况下,它仅从Object.prototype继承.

另一种看待它的方法是:

object.newField instanceof field; // true
object.newField instanceof Object; // true

object.newField2 instanceof field; // false
object.newField2 instanceof Object; // true

或者继承链是:

object.newField  -> field.prototype -> Object.prototype -> null

object.newField2 -> Object.prototype -> null

‘ – >’意思是“继承自”.

猜你在找的JavaScript相关文章