js精要之构造函数
// 枚举对象
var obj = {}
obj.name = "bob";
obj.age = "";
obj.sex = "boy";
console.log(obj);
for(var sum in obj){
// console.log(sum);
}
// 构造函数 sayName自有方法
function Person(name){
this.name = name;
this.sayName = function(){
console.log(this.name);
}
}
var person1 = new Person("aaa");
var person2 = new Person("bbb");
console.log(person1.name); // aaa
console.log(person2.name); // bbb
person1.sayName(); // aaa
person2.sayName(); // bbb
// 每个函数都带有一个prototype属性 sayName1 为原型方法
function Person1(name){
this.name = name;
}
Person1.prototype.sayName1 = function(){
console.log(this.name);
}
var person1a = new Person1("aaa-v");
var person2a = new Person1("bbb-v");
console.log(person1a.name); // aaa-v
console.log(person2a.name); // bbb-v
person1a.sayName1(); // aaa-v
person2a.sayName1(); // bbb-v
// 鉴别一个原型属性
function hasPrototypeProperty(name,object){
return name in object && !object.hasOwnProperty(name);
}
var book = {
title:"this is book!"
}
console.log(hasPrototypeProperty("title",book)); //false
console.log(hasPrototypeProperty("hasOwnProperty",book)); //true
js精要之构造函数的更多相关文章
- 一篇文章理解JS继承——原型链/构造函数/组合/原型式/寄生式/寄生组合/Class extends
说实在话,以前我只需要知道"寄生组合继承"是最好的,有个祖传代码模版用就行.最近因为一些事情,几个星期以来一直心心念念想整理出来.本文以<JavaScript高级程序设计&g ...
- js 原型链、构造函数、原型与实例之间的关系
面向对象编程都会涉及到继承这个概念,JS中实现继承的方式主要是通过原型链的方法. 一.构造函数.原型与实例之间的关系 每创建一个函数,该函数就会自动带有一个 prototype 属性.该属性是个指针, ...
- js面向对象程序设计之构造函数
再上一篇的开头说了创建对象的两种方式,一种是Object构造函数的方式,一种是对象字面量的方法.但这些方式创建多个对象的时候都会产生大量的重复代码.经过技术的进步也演化出来许多的创建对象的模式.本章会 ...
- js继承之借用构造函数继承
我的上一篇文章介绍了,原型链继承模式.但是单纯的原型链模式并不能很好地实现继承. 一.原型链的缺点 1.1 单纯的原型链继承最大的一个缺点,来自于原型中包含引用类型的值. 本来,我们没有通过原型链实现 ...
- [js高手之路]构造函数的基本特性与优缺点
上文,通过基本的对象创建问题了解了构造函数,本文,我们接着上文继续了解构造函数的基本特性,以及优缺点. 每个对象上面都有一个constructor属性( 严格意义上来说,是原型上的,对象是通过查找到原 ...
- js面向对象1----了解构造函数
一.构造函数与实例的区别 1 构造函数 构造函数主要是一种用于生成对象的饼干模具,这些对象具有默认属性和属性方法,它可以创建多个共享特定特性和行为的对象. 构造函数只是一个函数,但当函数遇到了ne ...
- js工厂模式和构造函数
<!DOCTYPE html><html><head> <title>工厂模式和构造函数</title> <meta charset ...
- JS继承之借用构造函数继承和组合继承
根据少一点套路,多一点真诚这个原则,继续学习. 借用构造函数继承 在解决原型中包含引用类型值所带来问题的过程中,开发人员开始使用一种叫做借用构造函数(constructor stealing)的技术( ...
- 《JS设计模式笔记》构造函数和工厂模式创建对象
工厂模式 function createPerson (name,age,job) { var o=new Object(); o.name=name; o.age=age; o.job=job; o ...
随机推荐
- source command not found in sh shell解决办法
在Ubuntu系统中执行脚本的时候突然出现错误"source command not found in sh shell" 这个其实在Ubuntu 当中 执行脚本默认的使用的是da ...
- Ueditor的配置及使用
Ueditor官网:http://ueditor.baidu.com/website/ (项目需要JSP版本:UTF-8版) 1.配置 <script type="text/ja ...
- (简单) POJ 1278 Catch That Cow,回溯。
Description Farmer John has been informed of the location of a fugitive cow and wants to catch her i ...
- ZOJ 2059 The Twin Towers
双塔DP. dp[i][j]表示前i个物品,分成两堆(可以不全用),价值之差为j的时候,较小一堆的价值为dp[i][j]. #include<cstdio> #include<cst ...
- PHP文件上传安全处理的步骤
正确步骤:1.读取文件名,验证扩展名是不是在范围内 2.自己定义生成的文件名,目录,扩展名可以来自文件名扩展名. 其它值,都自己配置,不读取上存中内容 3.将文件 移到新目录(这个目录权限设置只读) ...
- NewTonJson.Net的使用
1.引用“Newtonsoft.Json” 4.0 版本 2.基础类 using System; using System.Collections.Generic; using System.Linq ...
- Struts2---Result(传统Web应用程序与Ajax应用程序的异同)
看了很久的struts,在视频和书的引导下,慢慢明白了点,推荐:<struts 2 in action>和马士兵的视频 今天看结果这块时,由于还没有学过ajax等,不太明白,但是必须弄懂嗒 ...
- OI队内测试二【数论概率期望】
版权声明:未经本人允许,擅自转载,一旦发现将严肃处理,情节严重者,将追究法律责任! 序:代码部分待更[因为在家写博客,代码保存在机房] T1: 题解:插头dp应该很好想吧,我们考虑当出现转折时我们对下 ...
- select into from 和 insert into select 的用法
SELECT INTO 和 INSERT INTO SELECT 两种表复制语句 Insert是T-sql中常用语句,Insert INTO table(field1,field2,...) valu ...
- Java中String的split()方法的一些需要注意的地方
public String[] split(String regex, int limit) split函数是用于使用特定的切割符(regex)来分隔字符串成一个字符串数组,这里我就不讨论第二个参数( ...