js原型详解(结合内存模型)
来源:互联网 发布:广告配音制作软件 编辑:程序博客网 时间:2024/05/22 12:32
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>js原型1</title>
<meta name="author" content="ASUS" />
<!-- Date: 2014-11-14 -->
<script type="text/javascript">
/**
* 以下演示了通过原型的创建方式,使用基于原型的创建可以将属性和方法
* 设置为Person专有的,不能再通过window来调用,如此就完成了封装
* 原型是js中非常特殊一个对象,当一个函数创建之后,会随之就产生一个原型对象
* 当通过这个函数的构造函数创建了一个具体的对象之后,在这个具体的对象中
* 就会有一个属性指向原型
*/
function Person(){
}
Person.prototype.name = "gui";
Person.prototype.age = 20;
Person.prototype.say = function(){
alert(this.name+","+this.age);
}
var p1 = new Person();
// p1.say();//gui,20
p1.name="gui22";
// p1.say();//gui22,20
var p2 = new Person();
// p2.say();//gui,20
//通过window没有办法调用say方法
//say();
//检测某个对象是否是某个函数的原型
// alert(Person.prototype.isPrototypeOf(p1));//true
//检测某个对象的constructor
// alert(p1.constructor == Person);//true
//检测某个对象是否是自己的属性
//alert(p1.hasOwnProperty("name"));//true,p1在自己的空间中设置了name属性
//alert(p2.hasOwnProperty("name"));//false
//删除某个对象的某个属性
// delete p1.name;
// alert(p1.hasOwnProperty("name"));//false,由于已经删除了
//检测某个对象在原型或者自己中是否包含有某个属性,通过in检测
//alert("name" in p1);
//alert("name" in p2);
//alert("gender" in p1);//gender(性别),在原型和自己的空间中都没有,false
/**
* 可以通过如下方法检测某个属性是否在原型中存在
*/
function hasPrototypeProperty(obj,prop) {
return ((!obj.hasOwnProperty(prop))&&(prop in obj))
}
alert(hasPrototypeProperty(p1,"name"));
alert(hasPrototypeProperty(p2,"name"));
</script>
</head>
<body>
</body>
"http://www.w3.org/TR/html4/strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>js原型1</title>
<meta name="author" content="ASUS" />
<!-- Date: 2014-11-14 -->
<script type="text/javascript">
/**
* 以下演示了通过原型的创建方式,使用基于原型的创建可以将属性和方法
* 设置为Person专有的,不能再通过window来调用,如此就完成了封装
* 原型是js中非常特殊一个对象,当一个函数创建之后,会随之就产生一个原型对象
* 当通过这个函数的构造函数创建了一个具体的对象之后,在这个具体的对象中
* 就会有一个属性指向原型
*/
function Person(){
}
Person.prototype.name = "gui";
Person.prototype.age = 20;
Person.prototype.say = function(){
alert(this.name+","+this.age);
}
var p1 = new Person();
// p1.say();//gui,20
p1.name="gui22";
// p1.say();//gui22,20
var p2 = new Person();
// p2.say();//gui,20
//通过window没有办法调用say方法
//say();
//检测某个对象是否是某个函数的原型
// alert(Person.prototype.isPrototypeOf(p1));//true
//检测某个对象的constructor
// alert(p1.constructor == Person);//true
//检测某个对象是否是自己的属性
//alert(p1.hasOwnProperty("name"));//true,p1在自己的空间中设置了name属性
//alert(p2.hasOwnProperty("name"));//false
//删除某个对象的某个属性
// delete p1.name;
// alert(p1.hasOwnProperty("name"));//false,由于已经删除了
//检测某个对象在原型或者自己中是否包含有某个属性,通过in检测
//alert("name" in p1);
//alert("name" in p2);
//alert("gender" in p1);//gender(性别),在原型和自己的空间中都没有,false
/**
* 可以通过如下方法检测某个属性是否在原型中存在
*/
function hasPrototypeProperty(obj,prop) {
return ((!obj.hasOwnProperty(prop))&&(prop in obj))
}
alert(hasPrototypeProperty(p1,"name"));
alert(hasPrototypeProperty(p2,"name"));
</script>
</head>
<body>
</body>
</html>
0 0
- js原型详解(结合内存模型)
- JS 原型(prototype)详解
- JS原型与原型链终极详解(推荐阅读)
- JS原型详解
- JS中的原型详解
- js设计模式-原型模型
- JS原型与原型链终极详解
- JS原型与原型链终极详解
- JS原型与原型链终极详解
- JS原型与原型链终极详解
- JS原型与原型链终极详解
- JS原型与原型链终极详解
- JS原型与原型链终极详解
- JS原型与原型链终极详解
- JS原型与原型链终极详解
- JS原型与原型链终极详解
- JS原型与原型链终极详解
- JS原型与原型链终极详解
- PHP 登录 FTP 服务器
- LeetCode Restore IP Addresses
- sed命令详解与示例
- jpg图片如何转换pdf
- UIScrollView滚动获取停止点及禁止惯性滚动
- js原型详解(结合内存模型)
- Python中对复杂数据结构排序(类似C中结构体数据结构)
- [小技巧] Linux下轻松实现PDF文件的合并
- objc_msgSend 标准调用方法 xcode6可能会报错
- float元素居中
- sqlite内存泄漏解决办法
- 有n个整数,使前面各数顺序向后移m个位置,最后m个数变成前面m个数,见图。写一函数:实现以上功能,在主函数中输入n个数和输出调整后的n个数。
- 中文字符串转换为utf-8编码
- popupwindow的用法