对象
Posted linfang.zhou
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了对象相关的知识,希望对你有一定的参考价值。
1、原型的弊端
function Person() { } Person.prototype = { constructor : Person, name : ‘zs‘, age : 20, friends : [‘王五‘,‘赵六‘] } var p1 = new Person(); var p2 = new Person(); p2.friends.push("xiao A"); alert(p1.friends); // 王五,赵六,xiao A alert(p2.friends); // 王五,赵六,xiao A // 原型的属性和方法被所有的对象所共享
改进方法一 :
2、组合原型和构造函数式
function Person2(name, age, friends) { this.name = name; this.age = age; this.friends = friends; } Person2.prototype = { constructor : Person2, sayName : function () { alert(this.name); } } var p3 = new Person2("张三",20,["王五","赵六"]); var p4 = new Person2("李四",26,["王五","赵六","浅浅"]) alert(p3.friends) // 王五,赵六 p3.sayName(); // 张三 alert(p4.friends) // 王五,赵六,浅浅 p4.sayName(); // 李四
3、动态原型模式
// 动态原型模式 (将代码都封装到一起) function Person3(name,age,friends) { this.name = name; this.age = age; this.friends = friends; if(typeof this.sayName != "function" ){ Person3.prototype.sayName = function () { alert(this.name) } } } var p5 = new Person3("haha",20,[‘aa‘,‘bb‘]); var p6 = new Person3("heihei",22,[‘aa‘,‘bb‘,‘cc‘]); alert(p5.sayName == p6.sayName) // true 说明 sayName 方法只被声明了一次
4、稳妥构造函数式
// 稳妥构造函数式 (应用在非常安全的环境中) // 1、没有公共属性 2、不能使用 this 对象 function Person4(name,age,job) { // 创建一个要返回的对象发 var obj = new Object(); // 创建一些属性,属性为私有属性,函数外不能访问 var name = name; obj.sayName = function () { // 函数里定义方法来访问函数内的属性 alert(name); } return obj; } var p7 = new Person4("aa"); p7.sayName(); // aa
以上是关于对象的主要内容,如果未能解决你的问题,请参考以下文章
错误代码:错误域 = NSCocoaErrorDomain 代码 = 3840“JSON 文本没有以数组或对象和允许未设置片段的选项开头。”
jquery 对象的 heightinnerHeightouterHeight 的区别以及DOM 元素的 clientHeightoffsetHeightscrollHeightoffset(代码片段
C#-WebForm-★内置对象简介★Request-获取请求对象Response相应请求对象Session全局变量(私有)Cookie全局变量(私有)Application全局公共变量Vi(代码片段