我发现许多人对此都难以理解。
尝试地写一下。
JS创建对象的方式
第一种方式
new 一个函数,函数是一个对象,new一个函数并把该函数赋值给一个对象,比如
var Obj1 = new function(){......},
背后实现的原理便是先创建一个对象,并把这个对象作为this参数从而调用后面的函数
第二种方式
JSON(javascript object notation)javascript对象标记法,json本质上就是一种字典,里面储存的属性和方法都是用字典的方式来存储,用一对大括号括起来一个空字典,同时也是一个空对象,用逗号分隔开每个属性和方法,用冒号来定义字典内每一个项内容,左侧是key,用来访问右侧的值,比如
var person{
"name": "jack",
"age":"22",
“sayhello":function(){alert("hello world")}
}
对象通俗的理解就是:你的对象本身有许多种属性。比如姓名,年龄,技能。
代码示例
function Person(nick, age){
this.name = nick;
this.age = age;
}
通过prototype增加方法
Person.prototype.sayName = function(){
console.log(this.name);
}
传给子代
var p1 = new Person('Byron', 20);
var p2 = new Person('Casper', 25);
p1.sayName() // Byron
p2.sayName() // Casper
_proto_与prototype之间的关系
p1.__proto__ === Person.prototype //true
p2.__proto__ === Person.prototype //true
p1.__proto__ === p2.__proto__ //true
Person.prototype.constructor === Person //true
参考文献: