javascript 对象封装的常用方式
2018-03-22 17:38
253 查看
常规封装function Person(name, age, sex) {
this.name = name;
this.age = age;
this.sex = sex;
}
Person.prototype = {
constructor: Person,
sayHello: function () {
console.log('hello');
}
}
var b = new Person('张三', 12, '女');
b.sayHello();将初始化内容放函数中function Person(info) {
this._init_(info);
}
Person.prototype = {
constructor: Person,
_init_:function(info){
this.name = info.name;
this.age = info.age;
this.sex = info.sex;
},
sayHello: function () {
console.log(this.name);
}
}
var info = {
name:'张三',
age:'12',
sex:'女'
}
var b = new Person(info);
b.sayHello();//张三new改造
jQuery 对象具有很强的集成性,可以作为函数调用,也可以做为对象调用,当作为函数调用的时候,她可以无需 new 而返回它的一个实例,很方便。
var Person = (function(window){
var Person = function(info){
return new Person.fn.init(info);
}
Person.fn=Person.prototype = {
constructor: Person,
init:function(){
this.name = info.name;
this.sayHello();
},
sayHello:function(){
console.log(this.name);
}
}
Person.fn.init.prototype = Person.prototype;
return Person;
})()
var info = {
name:'张三'
}
var a = Person(info);//张三
a.sayHello()//张三object.create();var Person = {
name: 'pawn',
sayHello: function() {
console.log(this.name);
}
}
var p = Object.create(Person);
p.sayHello();//pawn
this.name = name;
this.age = age;
this.sex = sex;
}
Person.prototype = {
constructor: Person,
sayHello: function () {
console.log('hello');
}
}
var b = new Person('张三', 12, '女');
b.sayHello();将初始化内容放函数中function Person(info) {
this._init_(info);
}
Person.prototype = {
constructor: Person,
_init_:function(info){
this.name = info.name;
this.age = info.age;
this.sex = info.sex;
},
sayHello: function () {
console.log(this.name);
}
}
var info = {
name:'张三',
age:'12',
sex:'女'
}
var b = new Person(info);
b.sayHello();//张三new改造
function Person(info) { this._init_(info); } Person.prototype = { constructor : Person, _init_ : function(info) { this.name = info.name; this.age = info.age; this.sex = info.sex; }, sayHello:function(){ console.log( this.name ); } } var myNew = function(constructor, args) { var o = {}; o.__proto__ = constructor.prototype; //构造函数的原型属性prototype赋值给o 的原型对象__proto__ var res = constructor.call(o, args);//以o为上下文调用函数,同时将参数作为数组传递 var type = typeof res;//如果在构造函数中,return 复合类型,包括对象,函数,和正则表达式,那么就会直接返回这个对象,否则,返回 o if (['string', 'number', 'boolean', 'null', 'undefined'].indexOf(type) !== -1) { return o; } return res; } var info = { name:'张三', age:12 } var b = myNew(Person,info); console.log(b);//Person { name: '张三', age: 12, sex: undefined } b.sayHello();//张三类jQuery 封装
jQuery 对象具有很强的集成性,可以作为函数调用,也可以做为对象调用,当作为函数调用的时候,她可以无需 new 而返回它的一个实例,很方便。
var Person = (function(window){
var Person = function(info){
return new Person.fn.init(info);
}
Person.fn=Person.prototype = {
constructor: Person,
init:function(){
this.name = info.name;
this.sayHello();
},
sayHello:function(){
console.log(this.name);
}
}
Person.fn.init.prototype = Person.prototype;
return Person;
})()
var info = {
name:'张三'
}
var a = Person(info);//张三
a.sayHello()//张三object.create();var Person = {
name: 'pawn',
sayHello: function() {
console.log(this.name);
}
}
var p = Object.create(Person);
p.sayHello();//pawn
相关文章推荐
- 【前段】【JavaScript】JS 对象封装的常用方式
- JS 对象封装的常用方式
- 详解JS对象封装的常用方式
- javascript面向对象中的对象创建、继承、封装等实现方式
- JS 对象封装的常用方式
- JavaScript创建对象的常用方式总结
- JavaScript实现创建自定义对象的常用方式总结
- JavaScript中的String对象的常用方法、文本框对象的常用方法和事件、正则表达式的概念、正则表达式的几种构造方式、RegExp对象使用什么方法匹配正则表达式、
- [Javascript]:JS创建对象方式、对象使用说明与常用内置对象总结
- JS 对象封装的常用方式
- javascript学习(十五):js中对象的常用的几种创建方式
- JS 对象封装的常用方式
- javascript常用创建对象的方式
- JS 对象封装的常用方式
- javascript对象的几种创建方式
- 深入javascript-封装对象
- javascript 面向对象(多种创建对象的方式)
- Javascript笔记-定义对象的几种方式
- 我自己的Javascript 库,封装了一些常用函数
- JavaScript 面向对象程序设计(上)——封装[转]