JavaScript实例和对象的区别?

JavaScript014

JavaScript实例和对象的区别?,第1张

关于js中实例和对象的解释如下:

比如定义persion如下:

var person = new Object()

var person = {}

JS 是基于原型的面向对象语言, 所有数据都可以当作对象处理,所以 person 是对象, 可以把它当作是 Object 的实例. 当然, 一切都是对象。

第二个采用对象字面量的方式生成的person也是如此。

然而它内部没有调用new Object(),而是采用JSON的初始化方式:

将现有的引用指向person。

实例和对象的区别,从定义上来讲:

1、实例是类的具象化产品,

2、而对象是一个具有多种属性的内容结构。

实例都是对象,而对象不全是实例。

Js里面没有类(ES6以前)的语法,所以类的概念就通过创造一个对象来实现。

保存在内存里,通过赋值给变量的形式,这样下次就可以通过变量名来访问: var data = { 'name': 'Sigma' }再保存持久一点,可以保存到cookie或者localStorage里: var data = { 'name': 'Sigma' }

扩展资料:

javascript是一个单线程的语言,但是可以通过代码调度在特定的时间运行。

对于js而言,每个实例化的对象都有以下的方法和属性(也就是说共有的,既然共有那麽就是在原型上的了):

(1):constructor,constructor被用来创建对象,比如 var o = new Object()那么constructor 就是 Object()函数。

(2):hasOwnProperty(propertyname),这表明如果一个实例化的对象(不是原型)存在给定的属性;注意的是属性名必须是字符串的形式。

(3):isPrototypeOf(object),判定一个对象是否是另一个对象的原型。

alert(Person.prototype.isPrototypeOf(person1))//true

alert(Person.prototype.isPrototypeOf(person2))//true

(4):propertyIsEnumerable(propertyname), 一个给定的属性可以用for-in语句枚举;同hasOwnProperty()一样,属性名必须是字符串。

(5):toString():返回对象的字符串形式

(6):valueOf():返回一个等于对象的字符串,布尔,字符串的值;这个经常返回和toString()一样的值。

function Fun(argument1,argument2){

return this

}

//直接调用

var f1 = Fun()// window {}

//实例化对象

var f2 = new Fun()// Fun {}

f1 只是调用 Fun函数,而 f2是实例化对象 Fun。两个的this指向的不是同个地方。调用函数的this指向的是window,实例化对象的this指向的是对象本身。

(构造函数的命名通常使用驼峰命名法,首字母大写,以此和普通的函数区分开来,这是一种习惯用法。)

测试例子:

如上,f只是调用fun1,输出的第一个this是指向window的。fun2也只是调用,所以this也是指向windowde。a是实例化的对象,this指向的是fun3实例化后的对象。

如果做下面调整。

如上,fun1跟fun3是被实例化,this指向对象本身,fun2只是调用,this指向window。

那给this的属性赋值会有什么样的结果呢?

调用函数里面的this属性赋值都是给window赋值的。

如果 fun1()改成 var a = new fun1()呢?

大家仔细看看输出的结果。