javascript面向对象设计
来源:互联网 发布:线上抽签软件 编辑:程序博客网 时间:2024/05/20 10:22
今天面试被考官问道javascript的面向对象设计,傻了眼,对面向对象不够了解
网上摘了个教程多少有些启发:
“
我们知道Javascript中的变量定义基本如下:
var name = 'Chen Hao';;
var email = 'haoel(@)hotmail.com';
var website = 'http://coolshell.cn';
如果要用对象来写的话,就是下面这个样子:
var chenhao = {
name :'Chen Hao',
email : 'haoel(@)hotmail.com',
website : 'http://coolshell.cn'
};
于是,我就可以这样访问:
//以成员的方式
chenhao.name;
chenhao.email;
chenhao.website;
//以hash map的方式
chenhao["name"];
chenhao["email"];
chenhao["website"];
关于函数,我们知道Javascript的函数是这样的:
var doSomething = function(){
alert('Hello World.');
};
于是,我们可以这么干:
var sayHello = function(){
var hello = "Hello, I'm "+ this.name
+ ", my email is: " + this.email
+ ", my website is: " + this.website;
alert(hello);
};
//直接赋值,这里很像C/C++的函数指针
chenhao.Hello = sayHello;
chenhao.Hello();
相信这些东西都比较简单,大家都明白了。 可以看到javascript对象函数是直接声明,直接赋值,直接就用了。runtime的动态语言。
还有一种比较规范的写法是:
//我们可以看到, 其用function来做class。
var Person = function(name, email, website){
this.name = name;
this.email = email;
this.website = website;
this.sayHello = function(){
var hello = "Hello, I'm "+ this.name + ", \n" +
"my email is: " + this.email + ", \n" +
"my website is: " + this.website;
alert(hello);
};
};
var chenhao = new Person("Chen Hao", "haoel@hotmail.com",
"http://coolshell.cn");
chenhao.sayHello();
顺便说一下,要删除对象的属性,很简单:
delete chenhao['email']
上面的这些例子,我们可以看到这样几点:
◆ Javascript的数据和成员封装很简单。没有类完全是对象操作。纯动态!
◆ Javascript function中的this指针很关键,如果没有的话,那就是局部变量或局部函数。
◆ Javascript对象成员函数可以在使用时临时声明,并把一个全局函数直接赋过去就好了。
◆ Javascript的成员函数可以在实例上进行修改,也就是说不同实例相同函数名的行为不一定一样。
”原文地址:http://www.php100.com/html/webkaifa/javascript/2012/0202/9754.html
- JavaScript面向对象设计
- javascript面向对象设计
- javascript面向对象设计
- JavaScript面向对象设计
- JavaScript的面向对象设计
- JavaScript游戏中的面向对象的设计
- javascript继承&设计模式&面向对象
- javascript中的面向对象设计案例
- JavaScript 游戏中的面向对象的设计
- 在Javascript面向对象设计一
- javascript设计模式(一)--面向对象
- JavaScript面向对象 “四段式”类设计方法javascript
- Javascript设计模式之一:面向对象的JavaScript
- 《JavaScript设计模式与开发实践》-面向对象的JavaScript
- javaScript 面向对象-对象
- 面向对象的javascript目录树控件设计与应用
- 面向对象的javascript目录树控件设计与应用
- 面向对象的javascript目录树控件设计与应用
- listview小demo
- H2和Hibernate:ERROR: org.hibernate.tool.hbm2ddl.SchemaUpdate - Unsuccessful: create table
- 救济!!Oracle AP中文版User Guide
- m2eclipse+tomcat
- 理解类加载器和Class对象
- javascript面向对象设计
- Eclipse中的查询支持使用正则表达式
- 深入分析Java ClassLoader原理
- ASP.NET前台JS与后台CS函数如何互相调用
- 获取Class对象的三种方式
- Qt5.2中的android环境搭建
- JDBC 大数据存储及其异常 批处理 SQL注入攻击
- HDU 4497 GCD and LCM (数论&组合数学)
- NYOJ 题目768 移位密码