is中创建对象的几种方法
Posted broue
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了is中创建对象的几种方法相关的知识,希望对你有一定的参考价值。
1.对象字面量方式创建
var obj = {
name: "小强",
age: 22,
sayName: function () {
console.log(this.name)
}
}
obj.sayName(); //控制台打印出“小强”
2.Object构造函数创建对象
调用js中的Objict构造函数创建new构造函数
var obj2 = new Object();
obj2.name = ‘小红‘;
obj2.age = 18;
obj2.sayName = function () {
console.log(this.name);
}
console.log(obj2);
obj2.sayName(); //控制台打印出“小美”
使用object构造函数和对象字面量方式创建对象有一个缺点:如果我们想创建与该对象同类型的对象,就会产生大量重复的代码。
3.工厂函数创建对象
function factory(name,age){
var obj = {};
obj.name = name;
obj.age = age;
return obj;
}
var p1 = factory("小猫",20);
var p2 = factory("小猪",22);
console.log(p1); //{name: "小猫", age: 20}
console.log(p2); //{name: "小猪", age: 22}
4.构造函数创建对象
new 一个函数发生了什么?
1,内部 隐式 创建一个 空对象
2,改变 函数 的this指向 指向创建的这个空的对象
3,隐式return 这个对象
注意:一般构造函数名 首字母大写 为了区分 普通函数 例如:Array Date RegExp Object Function
function Person(name,age){
this.name = name;
this.age = age;
}
var p1 = new Person("小明",20);
var p2 = new Person("小猫",19);
console.log(p1);//Person {name: "小明", age: 20}
console.log(p2);//Person {name: "小猫", age: 19}
1.利用constructor 实例对象原型中有一个constructor属性指向实例对象的构造函数
console.log(arr.constructor === Array) //结果为true
2.instanceof 判断一个对象是不是一个构造函数的实例
console.log(arr instanceof Array); //结果为true
3.每一种对象的构造函数原型上都有toString()不同对象调用toString()都是自己构造函数的原型空间
console.log(arr.toString === Array.prototype.toString) //结果为true
以上是关于is中创建对象的几种方法的主要内容,如果未能解决你的问题,请参考以下文章