JS中的prototype与面向对象的实例讲解
JS中的prototype与面向对象的实例讲解
发布时间:2016-12-30 来源:查字典编辑
摘要:复制代码代码如下://(1)把一个方法变成一个对象,为对象创建方法和属性varName=function(){//通过prototype给一...

复制代码 代码如下:

<script language="javascript" type="text/javascript">

//(1)把一个方法变成一个对象,为对象创建方法和属性

var Name = function () {

//通过prototype给一个对象创建方法

Name.prototype.Add = function (num, title) {

}

//也可以直接用this加方法名为对象创建方法和上面的等价

this.Way = function (str) {

}

//为对象添加属性值

Name.prototype.xing = "123";

//定义静态属性和方法

Name.shi = "static";

Name.Addd = function (num, title) {

}

//静态定义的局部属性和方法只能在静态的类型里面用

alert(Name.shi);

Name.Addd(1, 2);

}

//方法也可以这样声明

function Name1() {

Name1.prototype.add = function () { }

this.way = function () { }

Name1.prototype.shu = "other";

}

//静态定义的全局属性和方法通用

Name.sha = "static";

Name.Addd2 = function () {

}

alert(Name.sha); //调用静态属性

Name.Addd2(); //调用静态方法

var name = new Name();

name.Add(); //对象调用方法

name.Way();

alert(name.xing); //对象调用属性

/*静态的全局变量,在方法外可以调用;静态的局部变量和方法仅限于方法内使用;实例对象不能调用静态的方法 */

/*实例对象不能使用prototype; */

//(2)Javascript面向对象 继承

//父类

function Class() {

this.name = "name";

this.method = function () {

alert("method");

}

}

//子类

function Class1() {

this.name1 = "name1";

this.method1 = function () {

alert("method1");

}

}

//子类继承父类

Class1.prototype = new Class();

var obj = new Class1();

alert(obj.name);

alert(obj.name1);

obj.method();

obj.method1();

/****** 子类继承父类的语法,子类.prototype=new 父类(); *****/

//(3)子类重写父类

//子类

function Class2() {

this.name2 = "name2";

this.method2 = function () {

alert("method2");

}

}

Class2.prototype = new Class(); //继承

Class2.prototype.name = "updateName"; //重写父类的属性

Class2.prototype.method = function () {//重写父类的方法

alert("UpdateMethod");

}

var obj2 = new Class2();

alert(obj2.name); //显示updateName

obj2.method(); //显示UpdateMethod

alert(obj2.name2);

obj2.method2();

//(4){}里面的为对象

var arr = new Array();

arr.push({ "name": "1", "age": 12, funA: function () { } });

arr.push({ "name": "2", "age": 13 });

arr.push({ "name": "3", "age": 14 });

for (var i = 0; i < arr.length; i++) {

alert(arr[i].name);

alert(arr[i].age);

alert(arr[i].funA());

}

/****一个对象也可以这么定义***/

var newObject = {

"name": "Jim",

"sex": "Man",

Way: function () { }

};

</script>

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新Javascript教程学习
热门Javascript教程学习
编程开发子分类