在MDN文章面向对象的Javascript简介中关于继承的部分中,我注意到他们设置了prototype.constructor:
// correct the constructor pointer because it points to Person
Student.prototype.constructor = Student;
Run Code Online (Sandbox Code Playgroud)
这有什么重要意义吗?省略它可以吗?
我有:
function Obj1(param)
{
this.test1 = param || 1;
}
function Obj2(param, par)
{
this.test2 = param;
}
Run Code Online (Sandbox Code Playgroud)
现在我做的时候:
Obj2.prototype = new Obj1(44);
var obj = new Obj2(55);
alert(obj.constructor)
Run Code Online (Sandbox Code Playgroud)
我有:
function Obj1(param) {
this.test1 = param || 1;
}
Run Code Online (Sandbox Code Playgroud)
但是构造函数一直是Obj2 ......为什么呢?Obj1已成为Obj2的原型......
有人可以详细解释我的原型链和构造函数属性
谢谢
我需要有关在Revealing Module Pattern方式中编写更好代码的建议.我已经按照教程http://weblogs.asp.net/dwahlin/archive/2011/09/05/creating-multiple-javascript-objects-when-using-the-revealing-module-pattern.aspx对我帮助很大了解这种模式的基础知识.我正在尝试创建基本图像滑块.请检查jsfiddle链接,
var Slider = window.Slider = window.Slider || {};
Slider = (function($){
var $reelWrap = $('.fnSlider'),
$reel = $('.fnSlider').children('ul'),
$slide = $reel.children('li'),
slideWidth = $slide.width(),
numSlides = $slide.length,
reelWidth = numSlides*slideWidth,
$prev = $('.prev'),
$next = $('.next'),
init = function(){
pageLoad();
nextSlide();
prevSlide();
},
pageLoad = function(){
var index = 2;
$reel.css('width', reelWidth);
$slide.eq(index).addClass('fnActive');
$reel.css('left', -(index*slideWidth));
}
nextSlide = function(){
$next.click(function(e){
e.preventDefault();
var index = $reel.children('.fnActive').index() + 1;
var scroll = index * slideWidth;
if(index …Run Code Online (Sandbox Code Playgroud)