首先你要明白this关键字是与运行时环境有关,和声明时环境无关。
new test(1).fun2()这个fun2调用fun1时这句alert(tihs.m_num)这个this的运行环境是fun2,所以它代表fun2,只会弹出undefined,
new test(1).fun3()由于fun3的指针是指向fun1的,而fun1是test的一个属性,这句alert(tihs.m_num)这个this的运行环境是test,所以它代表test,只会弹出5。
定义function
Person(national,age)
{
this.age
=
age
//实例对象,每个示例不同
Person.national
=
national
//类对象,所用实例公用
var
bb
=
0
//局部变量,外面不能访问(类似局部函数)
}
调用
var
p
=
new
Person("中国",
29)
document.writeln("age:"
+
p.age)
document.writeln("object
national:"
+
p.national)
document.writeln("Class
national:"
+
Person.national)
document.writeln("local
var:"
+
p.bb)
var
p2
=
new
Person("美国",
31)
document.writeln("</br>")
document.writeln("age:"
+
p2.age)
document.writeln("object
national:"
+
p2.national)
document.writeln("Class
national:"
+
Person.national)
document.writeln("local
var:"
+
p2.bb)
document.writeln("</br>")
document.writeln("Class
national:"
+
Person.national)
//age:29
object
national:undefined
Class
national:中国
local
var:undefined
//age:31
object
national:undefined
Class
national:美国
local
var:undefined
//Class
national:美国
以上这篇浅谈js函数中的实例对象、类对象、局部变量(局部函数)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
保存在内存里,通过赋值给变量的形式,这样下次就可以通过变量名来访问: 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()一样的值。