javascript写类,html写javascript-成都快上网建站

javascript写类,html写javascript

请问使用JavaScript语言怎么写类?

首先给你说 JavaScript里面并没有类 只有对象的概念,你所看到了类,其实都支持Function而已,而由类生成的对象,都只是Object而已

成都服务器托管,成都创新互联公司提供包括服务器租用、成都电信服务器托管、带宽租用、云主机、机柜租用、主机租用托管、CDN网站加速、域名注册等业务的一体化完整服务。电话咨询:028-86922220

之所以Object看起来有区别,他们有不同的方法以及字段,都是拜于JavaScript动态语言的能力

使用new Car()的时候,其实仅仅是调用了一个名为Car的函数,这个函数内使用this表示所生成的对象,那么函数执行完之后,this会被返回,所以你得到了一个使用Car函数初始化的对象,如果你仅仅是用Car()这样调用函数的话,this则表示调用此函数的对象.

我建议你看看JavaScript权威手册 里面讲的很清楚

怎样用Javascript定义一个类

class Test {  // 使用关键字 class 申明一个类

action () {

return 'New Class';

}

}

JavaScript类的几种写法

2. 构造函数(public, private属性和方法) 1: function Person(iName, iAge){ 2: //private field 3: var name = iName; 4: var age = iAge; 5: 6: //private method 7: var privatefn = function(){ 8: alert(name); 9: } 10: 11: return { 12: //public field 13: Name: "hello " + name, 14: Age: "hello " + age, 15: 16: ShowStudent: function(){ 17: privatefn(); 18: alert(this.Name); 19: } 20: }; 21: }调用:(new Person("xiao","10")).ShowStudent(); 3. 原型方法(prototype) 1: function c(){} 2: c.prototype={ 3: name: "init value a", 4: setName: function(iName){ 5: this.name=iName; 6: }, 7: getName: function(){ 8: alert('hello from c, name: ' + this.name); 9: } 10: }; 11: (new c).getName(); // 输出hello from c, name: init value a 4. 构造函数+原型方法(prototype) 1: function Person(iName) { 2: this.name = iName; 3: }; 4: 5: Person.prototype={ 6: getName: function(){ 7: returnthis.name; 8: } 9: }; 10: 11: //调用 12: var b = new Person("jack"); 13: alert(b.getName()); 5. 构造函数+原型方法(prototype)- 节省内存的写法 1: function Person(iName, iAge){ 2: this.name=iName; 3: this.age=iAge; 4: 5: //对象实例都共享同一份方法不造成内存浪费 6: if(typeof Person._initialized == "undefined"){ 7: Person.prototype.ShowStudent=function(){ 8: alert(this.name); 9: }; 10: Person._initialized=true; 11: } 12: } 13: //调用 14: (new Person("jack","20")).ShowStudent();以上的实现方法如果不用_initialized的方法,也可以指向一个外部函数,道理一样。 6. JavaScript类的单例(Singleton)模式写法 1: var MyNamespace = {}; 2: MyNamespace.Singleton = (function() { 3: var uniqueInstance; // Private attribute that holds the single instance. 4: function constructor() { // All of the normal singleton code goes here. 5: // Private members. 6: var privateAttribute1 = false; 7: var privateAttribute2 = [1, 2, 3]; 8: function privateMethod1() { 9: //... 10: } 11: function privateMethod2(args) { 12: //... 13: } 14: return { // Public members. 15: publicAttribute1: true, 16: publicAttribute2: 10, 17: publicMethod1: function() { 18: // ... 19: }, 20: publicMethod2: function(args) { 21: // ... 22: } 23: } 24: } 25: return { 26: getInstance: function() { 27: if(!uniqueInstance) { // Instantiate only if the instance doesn't exist. 28: uniqueInstance = constructor(); 29: } 30: return uniqueInstance; 31: } 32: } 33: })(); 34: 35: //调用: 36: MyNamespace.Singleton.getInstance().publicMethod1(); JavaScript好书推荐(只推3本,须精读)

javascript 自定义类

js中当然有类的概念,不过就是用function来模拟,对于你的例子我说明如下:

// 定义Home类

function Home(){

//共有成员变量

this.name = "myName";

//私有成员变量

var age = 30;

}

//用原型链方式定义成员函数

Home.prototype.fun1 = function(args){

alert("alert by function1, args is " + args);

}

Home.prototype.fun2 = function(){

alert("alert by function2, there is no args");

}

然后将上面的代码放在一个js文件里,这样做是为了可以共通,作为公共函数。只要在js里引一下就可以了,加入你保存后名字为Home.js:

!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"

HTML

HEAD

TITLE New Document /TITLE

/HEAD

SCRIPT LANGUAGE="JavaScript" src="Home.js"

/SCRIPT

SCRIPT LANGUAGE="JavaScript"

var home = new Home();

/SCRIPT

BODY

input type="button" value="test" onclick="home.fun1()"

/BODY

/HTML

大概就说到这里。这只是简单的应用,其实js还可以通过原型链来实现继承,总是高级语言的那些特性都可以实现,如果想更深入学习,建议百度一下。

javascript中怎么定义一个类

/**

* 自定义类

* @returns {undefined}

*/

function Pepole() {

var name;//名字

var age;//年龄

var gender;//性别

}

/**

* 调用方法示例:new一个Pepole类

* @returns {createPepole.pepole}

*/

function createPepole() {

var pepole = new Pepole();

pepole.name = "张三";

pepole.age = 22;

pepole.gender = "女";

return pepole;

}

希望参帮到你!


网站栏目:javascript写类,html写javascript
文章来源:http://kswjz.com/article/dsdegsi.html
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流